Kulma

Kulma



Tämä simulaatio havainnollistaa kulmien luokittelua. Lisäksi voidaan harjoitella piirtokolmion käyttöä. Kopioi alla oleva koodi ja aja ohjelma. Älä tee koodiin muutoksia.

// Ohjelman tehnyt e-Oppi Oy
// 18.2.2018
float b = 0;
float d = 0; // 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 < 40)) {
      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
      }
     }
      if ((y1 > 40) && (y1 < 80)) {
      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
      }
     }
      
      
     }
     fill(0); // Musta tekstin väri

     int d2 = round(map(d,0,550,0,360));
     int b2 = round(map(b,0,550,0,4));
   
     
      
        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); 
        }
        pushMatrix();
        translate(300,450);
        scale(1,-1);
        noFill();
        strokeWeight(3);
        stroke(255,0,0);
        arc(0,0,1000,1000,radians(0),radians(d2),PIE);
        arc(0,0,60,60,radians(0),radians(d2),PIE);
        float dx = 210*cos(radians(d2));
        float dy = 210*sin(radians(d2));
        fill(255,0,0);
        ellipse(dx,dy,10,10);
        ellipse(210,0,10,10);
        ellipse(0,0,10,10);
        line(0,0,400,0);
        fill(0);
        textSize(20);
        scale(1,-1);
        text("C",dx+10,-dy-10);
        text("B",4,20);
        text("A",210,20);
        scale(1,-1);
        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,40); // Piirrä keltainen suorakulmio
         rect(0,40,849,40); // Piirrä keltainen suorakulmio     
         fill(255,100,100); // Punainen täyttöväri
         rect(d,0,50,40); // Piirrä punainen neliö
         rect(b,40,50,40); // Piirrä punainen neliö
          fill(0);
          textSize(20);
          text(""+d2+"\u00B0",d+4,35);
           text(""+b2,b+4,75);
          text("Kulmien luokittelu",10,110);
          text("\u2222ABC = "+d2+"\u00B0",10,145);
          text("\u2222CBA = "+(360-d2)+"\u00B0",150,145);
          if (d2 == 0) {
              text("Nollakulma",300,145); 
          }
          if ((d2 > 0) && (d2 < 90)) {
              text("Terävä kulma, kovera kulma",300,145); 
          }
            if (d2 == 90) {
              text("Suorakulma, kovera kulma",300,145);
          }
          if ((d2 > 90) && (d2 < 180)) {
              text("Tylppä kulma, kovera kulma",300,145); 
          }
           if (d2 == 180) {
              text("Oikokulma",300,145); 
          }
          if ((d2 > 180) && (d2 < 360)) {
              text("Kupera kulma",300,145); 
          }
            if (d2 == 360) {
              text("Täysi kulma",300,145);
          }
          if (b2 == 1) {
            piirtokolmio(180);
          }
          if (b2 == 2) {
            piirtokolmio(90);
          }
          if (b2 == 3) {
            piirtokolmio(0);
          }
          if (b2 == 4) {
            piirtokolmio(270);
          }
         
         
}
void piirtokolmio(float kulma) {
  fill(0,100,255,100);
  noStroke();
  float h = 300;

 
  pushMatrix();
  translate(300,450);
  rotate(radians(kulma));
  triangle(-h,0,h,0,0,h);
  fill(0);
  ellipse(0,0,5,5);
  for (int s = 0; s <= 180; s = s + 10) {
    float a1 = 200*cos(radians(s));
    float b1 = 200*sin(radians(s));
    float a2 = 10*cos(radians(s));
    float b2 = 10*sin(radians(s));
    stroke(0,0,255);
    strokeWeight(1);
    line(a1,b1,a2,b2);
  }
    for (int s = 0; s <= 180; s = s + 5) {
    float a1 = 200*cos(radians(s));
    float b1 = 200*sin(radians(s));
    float a2 = 180*cos(radians(s));
    float b2 = 180*sin(radians(s));
    stroke(0);
    strokeWeight(1);
    line(a1,b1,a2,b2);
  }
   for (int s = 0; s <= 180; s = s + 45) {
    float a1 = 200*cos(radians(s));
    float b1 = 200*sin(radians(s));
    float a2 = 40*cos(radians(s));
    float b2 = 40*sin(radians(s));
    stroke(255,0,255);
    strokeWeight(1);
    line(a1,b1,a2,b2);
  }
     for (int s = 0; s <= 180; s = s + 1) {
    float a1 = 200*cos(radians(s));
    float b1 = 200*sin(radians(s));
    stroke(0);
    strokeWeight(1);
    point(a1,b1);
  }
  popMatrix();

}