Lisaää muotoja

2D-primitiivit

On hieman kyllästyttävää piirtää pelkkiä ympyröitä. Entä jos haluaisimme piirtää vaikkapa neliön?

Avataan Reference: https://processing.org/reference/ ja tutkitaan sieltä löytyviä 2D-primitiivien käskyjä:

Tutkitaan nyt Referencestä kunkin käskyn sivulta, mitä arvoja käskyille on annettava. Piste, viiva, kolmio ja neliö ovat melko suoraviivaisia:

point(x, y);
line(x1, y1, x2, y2);
triangle(x1, y1, x2, y2, x3, y3);
ellipse(x, y, width, height);
rect(x, y, width, height);
  • Piste piirretään kohtaan (x, y).
  • Viiva piirretään kahden annetun pisteen (x1, y1) ja (x2, y2) välille.
  • Kolmio piirretään kolmen annetun pisteen, (x1, y1), (x2, y2) ja (x3, y3) välille.
  • Neliön piirtävä rect-käsky toimii samoin kuin ellipse: x ja y määrittävät kuvion sijainnin, width ja height kuvion leveyden ja korkeuden.

Näillä perusprimitiiveillä pääsee jo pitkälle. Halutessasi voit tutkia myös quad- ja arc-käskyjä Referencestä.

  • Nelikulmion (quad) käskylle annetaan neljän pisteen koordinaatit samaan tapaan kuin kolmiolle. Toisin kuin kolmiossa, nelikulmiossa pisteet on annettava käskylle järjestyksessä, joko myötä- tai vastapäivään (molemmat järjestykset ovat yhtä hyviä).
  • Kaari (arc) poikkeaa rakenteeltaan muista käskyistä. Ensimmäiset neljä arvoa määrittelevät ympyrän, jonka kaarta ollaan piirtämässä. Tämä tapahtuu aivan kuten ellipse-käskyssä. Tämän jälkeen määritellään radiaaneina kulma, josta kaaren piirtäminen alkaa, ja kulma, johon kaaren piirtäminen loppuu. Seitsemänneksi arvoksi voi vielä laittaa moodin, jossa haluaa kaaren piirrettävän.


Harjoitus
Kirjoita ohjelma, jossa käytät point, line, triangle, ellipse ja rect -metodeita. Käytä jokaista edellä mainittua metodia ainakin kerran.

Erilaisia viivoja

Lisätään repertuaariimme vielä muutama hyödyllinen käsky tässä luvussa opittujen lisäksi:

noStroke();
noFill();
strokeWeight(paksuus);
strokeCap(SQUARE/PROJECT/ROUND);
strokeJoin(MITER/BEVEL/ROUND);

noStroke poistaa kuvioista reunavärin ja noFill täytevärin kokonaan. strokeWeightstrokeCap ja strokeJoin
puolestaan vaikuttavat viivan paksuuteen ja muotoon. Niitä käytetään aivan kuten stroke- ja fill-metodeja, eli ne sijoitetaan ennen sellaisia muotokäskyjä, joihin niiden halutaan vaikuttavan.