2. Tegne

Skolekoding.no > Tekstkoding > p5.js > Kurs > 2. Tegne


2.1 Koordinatsystem

På ungdomsskolen bruker vi ofte et koordinatsystem som har origo midt på arket. Positiv x-akse er mot høyre. Positiv y-akse er oppover.

I p5.js, og de fleste andre språk, er origo oppe i venstre hjørne.  Positiv x-akse er til høyre, som vi er vant til, men positiv y-akse er nedover! De negative verdiene er utenfor vinduet oppe og til venstre.

På ungdomsskolen bruker vi mm og cm som mål på aksene. I p5.js bruker vi punkter (pixler). 100 punkter tilsvarer typisk omtrent 2 cm på en PC-skjerm.


2.2 Figurer

Vi tegner figurer med instruksjoner, slik som ellipse() som du brukte på forrige side. Her er flere instruksjoner:

point(x, y); punkt med koordinatene (x, y)
line(x1, y1, x2, y2); linje fra (x1, y1) til (x2, y2)
ellipse(x, y bredde, høyde); ellipse med sentrum i (x, y). Høyde er valgfri. Med bare bredde settes høyden lik bredden.
circle(x, y, radius); 
rect(x, y, bredde, høyde); rektangel, (x, y) angir det øvre venstre hjørnet
triangle(x1, y1, x2, y2, x3, y3); trekant, hjørnenes rekkefølge er likegyldig
quad(x1, y1, x2, y2, x3, y3, x4, y4); firkant, rekkefølge ikke likegyldig

https://processing.org/tutorials/drawing/

2.3 Oppgaver

Åpne editoren

A) Tegn tre sirkler med forskjellig plassering og størrelse.
B) Tegn et punkt, en linje, et rektangel, en trekant og en firkant.
C) Tegn fire sirkler som ligger på linje i samme høyde.
D) Tegn fire sirkler som ligger på linje under hverandre.
E) Tegn fire sirkler som ligger på linje på skrå i vinduet.
F) Tegn fire sirkler som overlapper hverandre.

Eksempel på løsning på oppgave E

2.4 Rekkefølge

Rekkefølgen på instruksjonene er viktig. Datamaskinen leser programmet fra toppen og nedover. Når vi baker en kake er det viktig at vi putter bakepulver i kakerøra før vi setter kaka i ovnen. På samme måte er rekkefølgen viktig i programmering. Hvis sirklene i forrige oppgave var store, ble de første delvis dekket av de neste.


2.5 Oppgave

A) Tegn en snømann som er ca 300 punkter høy.
​B) Bruk alle kommandoene fra forrige avsnitt


skolekoding.no
Stein Olav Kivle