Ympyrä

Ympyrä



Tämä simulaatio havainnollistaa ympyrän piirtämistä. Ympyrän säde ja keskipiste voidaan muuttaa. Ympyrään voidaan lisäksi lisätä keskuskulmaa vastaava sektori. Sinisellä värillä on kuvattu ympyrän kaari. Kopioi alla oleva koodi ja aja ohjelma. Älä tee koodiin muutoksia.

// Ohjelman tehnyt e-Oppi Oy
// 19.2.2018
float a = 275; // Laskurin alkuarvo (ikkunan keskellä)
float b = 275; // Laskurin alkuarvo (ikkunan keskellä)
float c = 275; // Laskurin alkuarvo (ikkunan keskellä)
float d = 100; // 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
     }
     }
     if ((y1 > 60) && (y1 < 90)) {
      if ((x1>c) && (c < 550)) { // Jos hiiri on oikealla puolen
         c++; // niin kasvata laskuria
      }

      if ((x1<c) && (x1 >= 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) && (x1 >=0)) { // Jos hiiri on vasemmalla puolen
         d--; // niin pienennä laskuria
      }
     }
      
     }
     fill(0); // Musta tekstin väri
     int a2 = round(map(a,0,550,-10,10));
     int b2 = round(map(b,0,550,-10,10));
     int c2 = round(map(c,0,550,0,10));
     int d2 = round(map(d,0,550,0,360));
     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);
      arc(a2*30,b2*30,60*c2,60*c2,radians(0),radians(d2),PIE);
      noFill();
      stroke(0);
      strokeWeight(5);
      ellipse(a2*30,b2*30,60*c2,60*c2);
      point(a2*30,b2*30);
      stroke(0,0,255);
      arc(a2*30,b2*30,60*c2,60*c2,radians(0),radians(d2));      
      popMatrix();
      fill(0);
      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
      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);
      textSize(20);
      text(""+a2,a+4,25);   
      text(""+b2,b+4,55);
      text(""+c2,c+4,85);   
      text(""+d2,d+4,115);   
      text("Keskipiste = ("+a2+","+b2+")",10,145);
      text("Säde r = "+c2,240,145);
      text("Keskuskulma = "+d2+"\u00B0",370,145);   
}