Suora y = kx + b

Suora y = kx + b



Tämä simulaatio piirtää suoran y = kx + b. 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
float a = 400; // Laskurin alkuarvo (ikkunan keskellä)
float b = 400; // Laskurin alkuarvo (ikkunan keskellä)

void setup () {
 size(800,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 < 50)) {
 if ((x1>a) && (a < 750)) { // 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 < 750)) { // 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
 float a2 = round(10*(map(a,0,750,-10,10)))/10.0;
 float b2 = round(10*(map(b,0,750,-10,10)))/10.0;
 float kk = a2;
 float bb = round(map(b,0,750,-300,300));
 
 
 fill(0,200,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);
 fill(255,0,0);
 stroke(0,0,255);
 strokeWeight(5);
 float x2 = -300; 
 float y2 = (round(kk*10)/10.0)*x2 + (round(bb*10)/10.0); 
 float x3 = 300; 
 float y3 = (round(kk*10)/10.0)*x3 + (round(bb*10)/10.0);
 line(x2,y2,x3,y3);
 noStroke();
 popMatrix();
 fill(255);
 rect(0,0,800,148);
 rect(600,0,200,750);
 stroke(0); // Musta viivan väri
 strokeWeight(3);
 fill(255,255,0); // Keltainen täyttöväri
 rect(0,0,799,50); // Piirrä keltainen suorakulmio
 rect(0,50,799,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ö
 textSize(30);
 fill(0);
 if ( round(b2*10)/10.0 >= 0) {
 text("y = "+round(a2*10)/10.0+"\u00B7x +"+round(b2*10)/10.0,100,130);
 } else {
 text("y = "+round(a2*10)/10.0+"\u00B7x "+round(b2*10)/10.0,100,130);
 }
 textSize(20);
 text(""+round(a2*10)/10.0,a+4,35); 
 text(""+round(b2*10)/10.0,b+4,85);
 text("x",630,180);
 text("y",730,180);
 for (int s=-10; s <= 10; s++) {
 text(s,620,465+s*25);
 text(""+round((a2*s+b2)*10)/10.0,700,465+s*25);
 }
 noFill();
 rect(610,190,180,540);
 rect(610,150,180,40);
 line(680,150,680,730);
}