Risti- ja vieruskulmat
Risti- ja vieruskulmat

Tämä simulaatio havainnollistaa kahden suoran välistä kulmaa, joista syntyvät ristikulmat ja vieruskulmat. Kopioi alla oleva koodi ja aja ohjelma. Älä tee koodiin muutoksia.
// Ohjelman tehnyt e-Oppi Oy
// 19.2.2018
float a = 100; // Laskurin alkuarvo (ikkunan keskellä)
float b = 200; // Laskurin alkuarvo (ikkunan keskellä)
void setup () {
size(600,750); // ikkunan koko
}
void draw() {
background(255); // Tyhjennä tausta
stroke(0); // Musta viivan väri
strokeWeight(3);
textSize(20);
int x1 = mouseX; // Selvitä hiiren vaakakoordinaatti
int y1 = mouseY;
if (mousePressed == true) {
if ((y1 > 0) && (y1 < 30)) {
if ((x1>a) && (a < 550)) { // Jos hiiri on oikealla puolen
a++; // niin kasvata laskuria
}
if ((x1<a) && (x1 > 0)) { // Jos hiiri on vasemmalla puolen
a--; // niin pienennä laskuria
}
}
if ((y1 > 30) && (y1 < 60)) {
if ((x1>b) && (b < 550)) { // Jos hiiri on oikealla puolen
b++; // niin kasvata laskuria
}
if ((x1<b) && (x1 > 0)) { // Jos hiiri on vasemmalla puolen
b--; // niin pienennä laskuria
}
}
}
fill(0); // Musta tekstin väri
int a2 = round(map(a,0,550,0,180));
int b2 = round(map(b,0,550,0,180));
fill(255);
noStroke();
rect(0,150,600,600);
stroke(200);
strokeWeight(2);
for (int z = 0; z < 21; z++) {
line(z*30,150,z*30,750);
line(0,150+z*30,600,150+z*30);
}
strokeWeight(3);
stroke(0);
line(300,150,300,750);
line(0,450,600,450);
fill(0);
triangle(590,440,598,450,590,460);
triangle(300,150,310,160,290,160);
text("x",580,430);
text("y",315,170);
textSize(20);
text("1",323,470);
text("1",280,430);
pushMatrix();
translate(300,450);
scale(1,-1);
fill(255,0,0,200);
if (b2 >= a2) {
arc(0,0,60,60,radians(a2),radians(b2),PIE);
arc(0,0,60,60,radians(a2+180),radians(b2+180),PIE);
} else {
arc(0,0,60,60,radians(b2),radians(a2),PIE);
arc(0,0,60,60,radians(b2+180),radians(a2+180),PIE);
}
noFill();
strokeWeight(5);
stroke(0,0,255);
if (b2 >= a2) {
arc(0,0,1000,1000,radians(a2),radians(b2),PIE);
arc(0,0,1000,1000,radians(a2+180),radians(b2+180),PIE);
} else {
arc(0,0,1000,1000,radians(b2), radians(a2),PIE);
arc(0,0,1000,1000,radians(b2+180),radians(a2+180),PIE);
}
popMatrix();
noStroke();
fill(255);
rect(0,0,600,148);
stroke(0); // Musta viivan väri
strokeWeight(3);
fill(255,255,0); // Keltainen täyttöväri
rect(0,0,849,30); // Piirrä keltainen suorakulmio
rect(0,30,849,30); // Piirrä keltainen suorakulmio
fill(255,100,100); // Punainen täyttöväri
rect(a,0,50,30); // Piirrä punainen neliö
rect(b,30,50,30); // Piirrä punainen neliö
textSize(20);
fill(0);
textSize(20);
text(""+a2,a+4,25);
text(""+b2,b+4,55);
if (abs(b2-a2) < 180) {
text("Ristikulma = "+abs(b2-a2)+"\u00B0",10,145);
text("Vieruskulma = "+(180-abs(b2-a2))+"\u00B0",300,145);
} else {
text("Ristikulma = "+(360-abs(b2-a2))+"\u00B0",10,145);
text("Vieruskulma = "+(180-(360-(abs(b2-a2))))+"\u00B0",300,145);
}
}