Esimerkki: Pyörivä neliö

Tutkitaan seuraavaa esimerkkiä:

SANALLINEN ALGORITMI
  1. Määrittele globaali kokonaislukumuuttuja a ja anna sille alkuarvo 0.
  2. Aseta ikkunan kooksi 400 px vaakaan ja 400 px pystyyn.
  3. Aseta ikkunan taustaväriksi musta.
  4. Aseta reunaviivan paksuudeksi 3.
  5. Aseta asetus: Ei täyttöä.
  6. Siirrä origoa 200 px oikealle ja 200 px alaspäin eli siirrä origo ikkunan keskelle.
  7. Pyöritä koordinaatistoa muuttujan a avulla.
  8. Kasvata muuttujan a arvoa 5:llä.
  9. Arvotaan satunnainen reunaviivan väri.
  10. Piirretään neliö ikkunan keskelle. Neliön vasen nurkkapiste on (-100,100) ja neliön koko on 200x200. Koska koordinaatisto pyörii 5:n asteen välein, niin aina kun void draw ()-lohko päivittyy, niin jokainen neliö piirtyy aina eri asentoon kuin edellinen.

// Ohjelman tehnyt e-Oppi Oy
// 30.8.2017
int
a = 0; // Laskurin alkuarvo void setup () { size(400,400); // Ikkunan koko background(0); // Taustaväri musta strokeWeight(3); // Reunaviivan paksuus 3 noFill(); // Ei täyttöä } void draw () { translate(200,200); // Siirrä origo ikkunan keskelle rotate(radians(a)); // Pyöritä koordinaatistoa a = a + 5; // Kasvata laskuria stroke(random(255),random(255),random(255)); // Arvotaan väri rect(-100,-100,200,200); // Piirrä neliö ikkunan keskelle }

Laskurin avulla on helppo luoda taiteellisia efektejä. Tässä esimerkissä siirretään origo ikkunan keskelle, johon on piirretty neliö. Koska laskuri on lisätty rotate()-komentoon, saamme neliön pyörimään. Lisäksi jokaisen neliön reunaviivan väri arvotaan, joka kerta aina erilaiseksi. Lopputulos näyttää tältä:



Jos haluaisit että neliö pyörähtää vain yhden kerran täyden ympyrän verran (360°), niin laskurin ympärille olisi tällöin lisättävä if-lause, joka on muotoa:


if (a <= 360) {
     a = a + 5; // Kasvata laskuria
 }


Eli kasvata laskuria niin kauan, kunnes a on pienempi tai yhtä suuri kuin 360. Kun a on suurempi kuin 360, ei enää tehdä mitään.

Voit kokeilla muuttaa myös rect()-komennon muotoon:
rect(-random(100),-random(100),random(200),random(200)); Mitä tapahtui?