Ympyrän piiri ja pinta-ala

Ympyrän piiri ja pinta-ala



Tämä simulaatio piirtää ympyrän. Punaisella on esitetty sektori ja sinisellä kaari. Lisäksi ohjelma laskee ympyrän piirin ja pinta-alan, sekä sektorin pinta-alan ja kaaren pituuden. 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
// 14.3.2018
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 < 50)) {
      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 > 50) && (y1 < 100)) {
      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

     float c2 = round(10*map(c,0,550,1,10))/10.0;
     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);
      pushMatrix();
      translate(300,450);
      scale(1,-1);
      fill(255,0,0,200);
      arc(0,0,60*c2,60*c2,radians(0),radians(d2),PIE);
      noFill();
      stroke(0);
      strokeWeight(5);
      ellipse(0,0,60*c2,60*c2);
      point(0,0);
      stroke(0,0,255);
      arc(0,0,60*c2,60*c2,radians(0),radians(d2));    
      stroke(0);
      strokeWeight(2);
      arc(0,0,40,40,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,50); // Piirrä keltainen suorakulmio
      rect(0,50,849,50); // Piirrä keltainen suorakulmio

           
      fill(255,100,100); // Punainen täyttöväri

      rect(c,0,50,50); // Piirrä punainen neliö
      rect(d,50,50,50); // Piirrä punainen neliö
      textSize(20);
      fill(0);
      textSize(20);
      text(""+c2,c+4,40);   
      text(""+d2,d+4,90);   
      text("r="+c2,5,125);
      text("\u03B1="+d2+"\u00B0",100,125);   
      text("p=2\u00B7\u03C0\u00B7"+c2+"="+nfc((2*PI*c2),1),210,125);
      text("A=\u03C0\u00B7"+c2+"\u00B2="+nfc((PI*c2*c2),1),410,125);
      text("b=("+d2+"\u00B0:360\u00B0)\u00B72\u00B7\u03C0\u00B7"+c2+"="+nfc(((d2/360.0)*2*PI*c2),1),5,145);
      text("A=("+d2+"\u00B0:360\u00B0)\u00B7\u03C0\u00B7"+c2+"\u00B2="+nfc(((d2/360.0)*PI*c2*c2),1),305,145);
      
}