2.2 Kolmio, nelikulmio ja monikulmio
Yhteenveto

|
// Ohjelman tehnyt: e-Oppi Oy
// 29.1.2017
void setup() {
size(450,450); // Ikkunan koko
background(255); // Taustaväri valkoinen
}
void draw() {
fill(255,0,0); // Täyttöväri punainen
triangle(50,150,100,50,150,200); // Kolmio
fill(0,255,0); // Täyttöväri vihreä
quad(200,100,350,50,400,150,300,250); // Nelikulmio
fill(0,0,255); // Täyttöväri sininen
beginShape(); // Aloita monikulmio
vertex(100, 400);
vertex(150, 250);
vertex(200, 350);
vertex(300, 300);
vertex(350, 450);
endShape(CLOSE); // Lopeta monikulmio
}
Kolmio
Komento, joka piirtää kolmen pisteen avulla kolmion, on seuraava.
KOMENTO |
MERKITYS |
---|---|
triangle(x1,y1,x2,y2,x3,y3); |
Komento piirtää kolmion pisteiden (x1,y1), (x2,y2) ja (x3,y3) välille. |
x1 |
x1-arvo on desimaali- tai kokonaislukuarvo, joka kertoo ensimmäisen pisteen vaakasuuntaisen etäisyyden ikkunan vasemmasta reunasta. |
y1 |
y1-arvo on desimaali- tai kokonaislukuarvo, joka kertoo ensimmäisen pisteen pystysuuntaisen etäisyyden ikkunan yläreunasta. |
x2 |
x2-arvo on desimaali- tai kokonaislukuarvo, joka kertoo toisen pisteen vaakasuuntaisen etäisyyden ikkunan vasemmasta reunasta. |
y2 |
y2-arvo on desimaali- tai kokonaislukuarvo, joka kertoo toisen pisteen pystysuuntaisen etäisyyden ikkunan yläreunasta. |
x3 |
x3-arvo on desimaali- tai kokonaislukuarvo, joka kertoo kolmannen pisteen vaakasuuntaisen etäisyyden ikkunan vasemmasta reunasta. |
y3 |
y3-arvo on desimaali- tai kokonaislukuarvo, joka kertoo kolmannen pisteen pystysuuntaisen etäisyyden ikkunan yläreunasta. |
Esimerkiksi kuvan mukainen kolmio saadaan komennolla: triangle(200,50,300,300,100,250); Kokonainen ohjelma voisi olla seuraava.
|
// Ohjelman tehnyt: e-Oppi Oy
// 29.1.2017
void setup() {
size(450,450); // Aseta ikkunan koko
background(255); // Taustaväri valkoinen
}
void draw() {
triangle(200,50,300,300,100,250); // Piirrä kolmio
}
Miksi kannattaa käyttää triangle-komentoa? Emmekö voisi yhtä hyvin piirtää kolmion kolmella viivalla? Tutkitaan tätä esimerkin avulla. Tehdään edelliseen koodiin lisäykset, jotka on lihavoitu.
|
// Ohjelman tehnyt: e-Oppi Oy
// 29.1.2017
void setup() {
size(450,450); // Ikkunan koko
background(255,255,0); // Taustaväri keltainen
fill(0,0,255); // Täyttöväri sininen
}
void draw() {
triangle(200,50,300,300,100,250); // Piirtää sinisen kolmion
line(250,50,350,300); // Piirretään toinen kolmio
line(350,300,400,200); // kolmella viivalla.
line(400,200,250,50);
}
Vasemmanpuoleinen kolmio on luotu triangle-komennolla ja oikeanpuoleinen kolmella viivalla eli line-komennoilla. Eron huomaa heti. Triangle-komentoon voidaan asettaa täyttöväri, mutta viivoilla luotuun kolmioon emme voi. Kun suoritamme yllä olevan koodin, lopputulos näyttää tältä.
Nelikulmio
Entäpä, jos haluamme piirtää nelikulmion, jossa ei ole suoria kulmia. Tällöin voimme käyttää quad-komentoa.
KOMENTO |
MERKITYS |
---|---|
quad(x1,y1,x2,y2,x3,y3,x4,y4); |
Komento piirtää nelikulmion pisteiden (x1,y1), (x2,y2), (x3,y3) ja (x4,y4) välille. |
x1 |
x1-arvo on desimaali- tai kokonaislukuarvo, joka kertoo ensimmäisen pisteen vaakasuuntaisen etäisyyden ikkunan vasemmasta reunasta. |
y1 |
y1-arvo on desimaali- tai kokonaislukuarvo, joka kertoo ensimmäisen pisteen pystysuuntaisen etäisyyden ikkunan yläreunasta. |
x2 |
x2-arvo on desimaali- tai kokonaislukuarvo, joka kertoo toisen pisteen vaakasuuntaisen etäisyyden ikkunan vasemmasta reunasta. |
y2 |
y2-arvo on desimaali- tai kokonaislukuarvo, joka kertoo toisen pisteen pystysuuntaisen etäisyyden ikkunan yläreunasta. |
x3 |
x3-arvo on desimaali- tai kokonaislukuarvo, joka kertoo kolmannen pisteen vaakasuuntaisen etäisyyden ikkunan vasemmasta reunasta. |
y3 |
y3-arvo on desimaali- tai kokonaislukuarvo, joka kertoo kolmannen pisteen pystysuuntaisen etäisyyden ikkunan yläreunasta. |
x4 |
x4-arvo on desimaali- tai kokonaislukuarvo, joka kertoo neljännen pisteen vaakasuuntaisen etäisyyden ikkunan vasemmasta reunasta. |
y4 |
y3-arvo on desimaali- tai kokonaislukuarvo, joka kertoo neljännen pisteen pystysuuntaisen etäisyyden ikkunan yläreunasta. |
Kuvan mukainen nelikulmio saadaan aikaiseksi komennolla: quad(50,200,250,50,350,250,200,350); Kokonainen ohjelma olisi seuraava.
|
// Ohjelman tehnyt: e-Oppi Oy
// 29.1.2017
void setup() {
size(450,450); // Ikkunan koko
background(255); // Taustaväri valkoinen
fill(255); // Täyttöväri valkoinen
}
void draw() {
quad(50,200,250,50,350,250,200,350); //Piirtää nelikulmion
}
Tutki koodia kirjoittamalla komento muotoon; quad(200,50,50,250,240,350,350,200); Mitä tapahtui?
Kuten huomaat, niin viivan väri tulee mustaksi automaattisesti. Jos haluat muuttaa viivan värin, niin sen voi tehdä stroke(R,G,B); komennolla.
Monikulmio
beginShape();
vertex(x1,y1);
vertex(x2,y2);
…
vertex(xn,yn);
endShape(CLOSE);
Haluamme tehdä ohjelman, joka piirtää kuvan mukaisen viisikulmion.

Esimerkiksi yllä olevan kuvan mukainen punainen viisikulmio saadaan aikaiseksi seuraavalla koodilla.
|
// Ohjelman tehnyt: e-Oppi Oy
// 29.1.2017
void setup() {
size(450,450); // Ikkunan koko
background(255); // Taustaväri valkoinen
fill(255,0,0); // Täyttöväri punainen
}
void draw() {
beginShape(); // Aloitetaan monikulmio
vertex(200, 50);
vertex(350, 100);
vertex(400, 350);
vertex(250, 150);
vertex(100, 300);
endShape(CLOSE); // Lopetetaan monikulmio
}
Voit tutkia kuvaajaa vaihtamalla x:n ja y:n paikkaa vertex(x,y)-komennossa. Mitä tapahtui? Miten koordinaatit pitäisi muuttaa, jos haluaisit saada aikaiseksi peilikuvan?