150 likes | 279 Views
Intro til programmering i Processing. Åsmund Eldhuset Bekk Consulting AS. Visdomsord.
E N D
Intro til programmeringi Processing Åsmund Eldhuset Bekk Consulting AS
Visdomsord "A computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are, in short, a perfect match."–Bill Bryson
Hva er en datamaskin? • En innretning som tar imot input, utfører beregninger og produserer output
Programstruktur: engangs Start kode(); kode(); kode(); Slutt
Programstruktur: repeterende Start void setup() {kode(); kode(); } void draw() {kode(); kode(); } Repeter for alltid
Vindu • Sett vindusstørrelse i piksler:size(width, height); • Fyll bakgrunnen med en farge:background(red, green, blue);eller med en gråtone:background(graytone); • Alle fargekomponenter er 0-255
Figurer • Linje:line(startX, startY, endX, endY); • Rektangel:rect(left, top, width, height); • Ellipse:ellipse(centerX, centerY,width, height); • Husk at y-aksen går nedover
Farger • Sett fyllfarge for de neste figurene:fill(red, green, blue);eller fyllgråtone:fill(graytone); • Sett strekfarge for de neste figurene:stroke(red, green, blue);eller strekgråtone:stroke(graytone);eller ingenting:noStroke(); • Fargen holder seg inntil man endrer den
Annet • Strektykkelse:strokeWeight(pixels); • Gjør at draw() bare kjøres én gang:noLoop(); • Enlinjes kommentar:fill(255, 0, 0); // Rødt fyll • Flerlinjes kommentar:fill(255, 0, 0); /* Her setter vi fyllfargen for neste figur */
Feilmeldinger • Kompileringsfeil: • Du har skrevet grammatisk ukorrekt kode • Stort sett enkle å fikse når man er blitt litt vant med språket og klarer å tolke meldingene • Kjøretidsfeil: • Programmet utfører en ulovlig operasjon (f.eks. dele på 0) • Kan være vanskelige å fikse • Logisk feil: • Programmet "fungerer", men gjør noe annet enn det du ville • Kan være et mareritt å i det hele tatt finne
Animasjon • Husk at draw() kjøres i en løkke • Vi kan bruke variabler til å tegne noe nytt hver gang • Øverst, utenfor setup() og draw(): int x = 100;Inni draw():rect(x, 100, 50, 50);x = x + 1; • = er ikke en ligning, det er en tilordning
Animasjon • Vinduet fungerer i utgangspunktet som et lerret – alt tegnes oppå det som var der fra før av • Oftest har man lyst til å male helt over det forrige "stillbildet" – se på forskjellen mellom å ha background() i setup() og i draw()
Mus • Posisjonen til musepekeren er alltid tilgjengelig gjennom variablene mouseXog mouseY • Tegne en sirkel der pekeren befinner seg:ellipse(mouseX, mouseY, 50, 50);
Konsoll • Det svarte området nederst i Processing • Kan vise tekstoutput fra programmet • println() kan produsere output av forskjellige typer informasjon:println(42);println(x);println("Hello world!"); • Bruk + for å lime sammen informasjon, eller print() for å slippe linjeskift:print("x is: " + x);