Esimerkki: Piirtelyä peilikuvana

Seuraavat komennot lukevat hiiren koordinaattipisteet:

mouseX; Lukee hiiren x-koordinaatin arvon
mouseY; Lukee hiiren y-koordinaatin arvon

Seuraavalla ohjelmalla voit piirtää peilikuvana.

SANALLINEN ALGORITMI
  1. Aseta ikkunan kooksi 800 px vaakaan ja 800 px pystyyn.
  2. Aseta ikkunan taustaväriksi valkoinen.
  3. Siirrä origoa 400 px oikealle ja 400 px alas eli siirrä origo ikkunan keskelle.
  4. Aseta reunaviivan väriksi musta.
  5. Määrittele kokonaislukumuuttuja x ja tallenna siihen hiiren x-koordinaatti siirrettynä ikkunan keskelle.
  6. Määrittele kokonaislukumuuttuja y ja tallenna siihen hiiren y-koordinaatti siirrettynä ikkunan keskelle.
  7. Jos hiiren vasen painike on pohjassa, niin
  8. Aseta punainen täyttöväri.
  9. Piirrä punainen ympyrä, jonka halkaisija on 20, paikkaan (x, y).
  10. Peilaa x:n akseli eli x:n arvot kasvavat vasemmalle.
  11. Aseta sininen täyttöväri,
  12. Piirrä sininen ympyrä, jonka halkaisija on 20, paikkaan (x, y). Sininen ympyrä piirretään peilikuvana, koska x-akseli osoittaa eri suuntaan.

// Ohjelman tehnyt e-Oppi Oy
// 30.8.2017
void setup() {
size(800,800); // Ikkunan koko
background(255); // Valkea tausta
}
void draw() {
translate(400,400); // Origo ikkunan keskelle
stroke(0); // Reunaviivan väri musta
line(0,-400,0,400); // Piirrä pystyviiva ikkunan keskelle
noStroke(); // Ei reunaviivaa
int x = mouseX-400; // Lue hiiren x-koordinaatti
int y = mouseY-400; // Lue hiiren y-koordinaatti
if (mousePressed == true) { // Jos hiirtä painettu
fill(255,0,0); // Punainen täyttöväri
ellipse(x,y,20,20); // Piirrä punainen ympyrä
scale(-1,1); // Peilaa koordinaatisto
fill(0,0,255); // Sininen täyttöväri
ellipse(x,y,20,20); // Piirrä sininen ympyrä
}
}

Kuinka koodi pitäisi muuttaa, että voisit peilata vaakasuunnassa? Entä jos haluaisit peilata sekä pysty- että vaakasuunnassa yhtä aikaa?