Pythagoraan lause

Pythagoraan lause



Tämä simulaatio havainnollistaa Pythagoraan lausetta. Ohjelman koodi on seuraava. Kopioi tämä koodi kokonaisuudessaan ohjelmointiympäristöön ja suorita koodi. Sinun ei tarvitse tehdä koodiin mitään muutoksia.

// Ohjelman tehnyt e-Oppi Oy
// 28.3.2018
int a = 400; // Laskurin alkuarvo (ikkunan keskellä)
int b = 400; // Laskurin alkuarvo (ikkunan keskellä)

void setup () {
 size(850,750); // ikkunan koko
 stroke(0); // Musta viivan väri
 strokeWeight(3);
}

void draw() {
 background(255); // Tyhjennä tausta
 textSize(30);
 fill(255,255,0); // Keltainen täyttöväri
 rect(0,0,849,50); // Piirrä keltainen suorakulmio
 rect(0,50,849,50); // Piirrä keltainen suorakulmio
 fill(255,100,100); // Punainen täyttöväri
 rect(a,0,50,50); // Piirrä punainen neliö
 rect(b,50,50,50); // Piirrä punainen neliö

 int x1 = mouseX; // Selvitä hiiren vaakakoordinaatti
 int y1 = mouseY;
  if (mousePressed == true) {
 if ((y1 > 0) && (y1 < 50)) {
 if ((x1>a) && (a < 800)) { // Jos hiiri on oikealla puolen
 a++; // niin kasvata laskuria
 }

 if ((x1<a) && (a > 0)) { // Jos hiiri on vasemmalla puolen
 a--; // niin pienennä laskuria
 }
 }
 if ((y1 > 50) && (y1 < 100)) {
 if ((x1>b) && (b < 800)) { // Jos hiiri on oikealla puolen
 b++; // niin kasvata laskuria
 }

 if ((x1<b) && (b >0)) { // Jos hiiri on vasemmalla puolen
 b--; // niin pienennä laskuria
 }
 }
}
 fill(0); // Musta tekstin väri
 int a2 = round(map(a,0,800,1,10));
 int b2 = round(map(b,0,800,1,10));
 float c2 = sqrt(a2*a2+b2*b2);
 text(a2,a+10,35); 
 text(b2,b+10,85);
 fill(0,200,255);
 triangle(230,530,230+b2*20,530,230,530-a2*20); 
 fill(200,255,0);
 rect(230,530,b2*20,b2*20);
 fill(100,255,0);
 rect(230,530,-a2*20,-a2*20);
 fill(200,0,255);
 float kulma = degrees(atan2(-a2*20,-b2*20));
 pushMatrix();
 translate(230+b2*20,530);
 rotate(radians(kulma));
 scale(1,-1);
 rect(0,0,c2*20,-c2*20);
 popMatrix();
 fill(0);
 text("Pythagoraan lause",520,550);
 text(a2+"\u00B2 + "+b2+"\u00B2 = "+round(c2*100)/100.0+"\u00B2",520,600);
 text(a2*a2+" + "+b2*b2+" = "+round(c2*c2),520,650);
 if (a2 > 2) {
 textSize(30);
 text(a2*a2,230-a2*13,530-a2*8);
 }
 if (a2 == 2) {
 textSize(20);
 text(a2*a2,205,520);
 }
 if (a2 == 1) {
 textSize(15);
 text(a2*a2,215,525);
 }
 if (b2 > 2) {
 textSize(30);
 text(b2*b2,215+b2*10,530+b2*10);
 }
 if (b2 == 2) {
 textSize(20);
 text(b2*b2,245,555);
 }
 if (b2 == 1) {
 textSize(15);
 text(b2*b2,235,547);
 }
 if (c2*c2 > 18) {
 textSize(30);
 text(round(c2*c2),250+a2*6+b2*6,520-b2*8-a2*8);
 } else {
 textSize(20);
 text(round(c2*c2),245+c2*c2,515-c2*c2);
 }
}