Suoran kulmakerroin

Suoran kulmakerroin



Tämä simulaatio havainnollistaa suoran kulmakerrointa. Ohjelman koodi on alla. 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
float a = 165; // Laskurin alkuarvo (ikkunan keskellä)
float b = 220; // Laskurin alkuarvo (ikkunan keskellä)
float c = 385; // Laskurin alkuarvo (ikkunan keskellä)
float d = 412; // 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) && (a > 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) && (b>0)) { // Jos hiiri on vasemmalla puolen
 b--; // niin pienennä laskuria
 }
 }
 if ((y1 > 60) && (y1 < 90)) {
 if ((x1>c) && (c < 550)) { // Jos hiiri on oikealla puolen
 c++; // niin kasvata laskuria
 }

 if ((x1<c) && (c >0)) { // Jos hiiri on vasemmalla puolen
 c--; // niin pienennä laskuria
 }
 }
 if ((y1 > 90) && (y1 < 120)) {
 if ((x1>d) && (d < 550)) { // Jos hiiri on oikealla puolen
 d++; // niin kasvata laskuria
 }

 if ((x1<d) && (d >0)) { // Jos hiiri on vasemmalla puolen
 d--; // niin pienennä laskuria
 }
 }
}
 fill(0); // Musta tekstin väri
 float a2 = round(10*map(a,0,550,-10,10))/10.0;
 float b2 = round(10*map(b,0,550,-10,10))/10.0;
 float c2 = round(10*map(c,0,550,-10,10))/10.0;
 float d2 = round(10*map(d,0,550,-10,10))/10.0;
 float kk = (d2-b2)/(c2-a2);
 // float bb = round(map(b,0,550,-300,300));
 
 
 fill(255);
 
 noStroke();
 rect(0,150,600,600);
 stroke(100);
 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);
  stroke(0,0,255);
 strokeWeight(5);
 float x2 = -300; 
 float y2 = round((kk*(x2-a2*30)+b2*30)*10)/10.0;
 float x3 = 300; 
 float y3 = round((kk*(x3-a2*30)+b2*30)*10)/10.0;
 if (a2 == c2) {
    line(a2*30,300,a2*30,-300);
 } else {
   line(x2,y2,x3,y3);
 }
 noStroke();

 fill(255,0,255);
 ellipse(a2*30,b2*30,10,10);
 ellipse(c2*30,d2*30,10,10);
 fill(0,0,255,100);
 triangle(a2*30,b2*30,c2*30,d2*30,c2*30,b2*30);
 
 popMatrix();
 fill(0);
 text("A",290+a2*30,440-b2*30);
 text("B",290+c2*30,440-d2*30);
 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
 rect(0,60,849,30); // Piirrä keltainen suorakulmio
 rect(0,90,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ö
 rect(c,60,50,30); // Piirrä punainen neliö
 rect(d,90,50,30); // Piirrä punainen neliö
 
 textSize(20);
 fill(0);
 text("A = ("+(round(a2*10)/10.0)+","+(round(b2*10)/10.0)+")",20,140);
 text("B = ("+(round(c2*10)/10.0)+","+(round(d2*10)/10.0)+")",200,140);
 if (a2 == c2) {
   text("k = "+round((d2-b2)*10)/10.0+":"+round((c2-a2)*10)/10.0+" = \u221E",380,140);
 } else {
   text("k = "+round((d2-b2)*10)/10.0+":"+round((c2-a2)*10)/10.0+" = "+(nfc((kk*10)/10.0,2)),380,140);
 }
 textSize(20);
 text(""+a2,a+4,25); 
 text(""+b2,b+4,55);
 text(""+c2,c+4,85); 
 text(""+d2,d+4,115);
}