2.3 Kaari ja Bezier-käyrä
Yhteenveto

Pyörimissuunta on myötäpäivään.
|
// Ohjelman tehnyt: e-Oppi Oy
// 29.1.2017
void setup () {
size(450,450); // Ikkunan koko
background(255); // Taustaväri valkoinen
strokeWeight(3); // Reunaviivan paksuus 3
}
void draw () {
fill(0,0,255); // Täyttöväri sininen
arc(150,150,200,200,radians(90),radians(315),PIE);
fill(255,0,0); // Täyttöväri punainen
arc(350,150,100,300,radians(180),radians(360+90),PIE);
fill(0,255,0); // Täyttöväri vihreä
arc(200,350,300,200,radians(135),radians(225),CHORD);
}
Kaari
Sektori tai segmentti voidaan piirtää komennolla.
Jos kuviosta poistaa täyttövärin, niin sektorin (PIE) avulla voidaan piirtää kaari ja kaksi sädettä. Vastaavasti segmentistä (CHORD) saadaan aikaiseksi kaari ja jänne. Kun käytät asetusta OPEN, niin saat aikaiseksi tällöin pelkän kaaren.
Processing-ohjelmoinnissa kulmat alkavat idästä ja kiertosuunta on myötäpäivään. Seuraavat asetukset on hyvä tietää.
SUUNTA |
KULMA |
KOMENTO |
---|---|---|
itä |
0° |
radians(0) |
kaakko |
45° |
radians(45) |
etelä |
90° |
radians(90) |
lounas |
135° |
radians(135) |
länsi |
180° |
radians(180) |
luode |
225° |
radians(225) |
pohjoinen |
270° |
radians(270) |
koillinen |
315° |
radians(315) |
Koska ohjelmoinnissa käytetään radiaanikulmia, niin kirjoita kulmat aina radians(kulma) komennon avulla. Komento muuttaa asteet radiaaneiksi. Radiaani-asteissa 360 astetta vastaa kulma: 2π.
Kuvan mukainen piirakkakuvio saadaan aikaiseksi seuraavalla ohjelmalla.
|
// Ohjelman tehnyt: e-Oppi Oy
// 29.1.2017
void setup() {
size(450,450); // Ikkunan koko
background(255); // Taustaväri valkoinen
fill(0,255,255); // Täyttöväri Syaani
}
void draw() {
arc(200,200,300,200,radians(0),radians(270),PIE);
}
Entä jos lopetuskulma menee yli 360 asteen?
Ylläolevassa sektorissa aloituskulma on 180 astetta ja lopetuskulma on 45 astetta. Käytännössä lopetuskulman on oltava suurempi kuin aloituskulman eli kuvan mukainen sektori saadaan komennolla:
arc(200,200,300,300,radians(180),radians(360+45),PIE);
Jos lopetuskulma on yli 360 asteen, niin tällöin lisää 360 astetta kaaren lopetuskulmaan. Voit myös kirjoittaa komennon muotoon:
arc(200,200,300,300,radians(180),radians(405),PIE);
Eri variaatiot
|
// Ohjelman tehnyt: e-Oppi Oy
// 25.10.2017
void setup() {
size(600,400); // Ikkunan koko
background(255); // Taustaväri valkoinen
strokeWeight(5); // Viivan paksuus 5
}
void draw () {
fill(255,0,0); // Punainen täyttöväri
arc(100,30,200,200,radians(45),radians(135),PIE);
arc(300,30,200,200,radians(45),radians(135),OPEN);
arc(500,30,200,200,radians(45),radians(135),CHORD);
noFill(); // Ei täyttöä
arc(100,150,200,200,radians(45),radians(135),PIE);
arc(300,150,200,200,radians(45),radians(135),OPEN);
arc(500,150,200,200,radians(45),radians(135),CHORD);
noStroke(); // Ei reunaviivaa
fill(0,0,255); // Sininen täyttöväri
arc(100,270,200,200,radians(45),radians(135),PIE);
arc(300,270,200,200,radians(45),radians(135),OPEN);
arc(500,270,200,200,radians(45),radians(135),CHORD);
}
Ohjelma tulostaa seuraavaa.

Bezier-käyrä (Extra)
Bezier-käyrä kahden pisteen ja kahden kahvan avulla saadaa, komennolla.
KOMENTO |
MERKITYS |
---|---|
bezier(x1,y1,x2,y2,x3,y3,x4,y4); |
Komento piirtää bezier-käyrän pisteiden (x1,y1) ja (x4,y4) välille. Bezier-käyrä väännetään mutkalle pisteistä lähtevien kahvojen avulla. Kahvojen paikka ilmaistaan koordinaatteina (x2,y2) ja (x3,y3). |
x1 |
x1-arvo on desimaali- tai kokonaislukuarvo, joka kertoo Bezier-käyrän aloituspisteen vaakasuuntaisen etäisyyden ikkunan vasemmasta reunasta. |
y1 |
y1-arvo on desimaali- tai kokonaislukuarvo, joka kertoo Bezier-käyrän aloituspisteen pystysuuntaisen etäisyyden ikkunan yläreunasta. |
x2 |
x2-arvo on desimaali- tai kokonaislukuarvo, joka kertoo ensimmäisen kahvan loppupisteen vaakasuuntaisen etäisyyden ikkunan vasemmasta reunasta. |
y2 |
y2-arvo on desimaali- tai kokonaislukuarvo, joka kertoo ensimmäisen kahvan loppupisteen pystysuuntaisen etäisyyden ikkunan yläreunasta. |
x3 |
x3-arvo on desimaali- tai kokonaislukuarvo, joka kertoo toisen kahvan loppupisteen vaakasuuntaisen etäisyyden ikkunan vasemmasta reunasta. |
y3 |
y3-arvo on desimaali- tai kokonaislukuarvo, joka kertoo toisen kahvan loppupisteen pystysuuntaisen etäisyyden ikkunan yläreunasta. |
x4 |
x4-arvo on desimaali- tai kokonaislukuarvo, joka kertoo Bezier-käyrän lopetuspisteen vaakasuuntaisen etäisyyden ikkunan vasemmasta reunasta. |
y4 |
y3-arvo on desimaali- tai kokonaislukuarvo, joka kertoo Bezier-käyrän lopetuspisteen pystysuuntaisen etäisyyden ikkunan yläreunasta. |
Kuvan mukainen Bezier-käyrä 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(0,255,0); // Täyttöväri Vihreä
}
void draw() {
bezier(150,100,350,150,300,250,200,300);
}