drieh na 7dp
 
 
de 7 driehoeken in de draaipunten
 
 
 

drieh na dp Rot

driehoek in dp 1, -30 graden rotatie
driehoek in dp 5,  30 graden rotatie
in dp 2, 45 graden en in dp 4, -45 gr rotatie
 
drieh dp3 2hna
 
drieh na dp Rot0
 
Zie de schets voor de code
 
drieh na dp Rot1
 
 drieh na dp Rot2
 

 

header drieh na
 
gelijkbenige driehoek "Drieh_na"                           terug naar de inleiding
 
met als basis          n ,
de schuine zijden:  a = sqrt(2*n*n); 
de hoogte:         hna = sqrt(a*a-n*n/4);
 
 

class Drieh_na extends Vormen { 
Drieh_na(float n_, int d_, float x_, float y_, float hoek_, color c1_) {  
 super();  
 n = n_;   
 x = x_;   
 y = y_;   
 hoek = hoek_;   
 c1 = c1_;  
 d = d_;  
 } 
  
void display() {  
 fill(c1);  
 pushMatrix();  
 translate(x, y);  
 rotate(radians(hoek));   
 float a = sqrt(2*n*n);  
 float hna = sqrt(a*a-n*n/4);  
 beginShape(); 
 if (d == 0) {vertex(-n/2, hna/2); vertex(0, -hna/2); vertex(n/2, hna/2);}  
 if (d == 1) {vertex(0, 0); vertex(n/2, -hna); vertex(n, 0);}  
 if (d == 2) {vertex(-n/4, hna/2); vertex(n/4, -hna/2); vertex(n*3/4, hna/2);}  
 if (d == 3) {vertex(-n/2, hna); vertex(0, 0); vertex(n/2, hna);}  
 if (d == 4) {vertex(-n*3/4, hna/2); vertex(-n/4, -hna/2); vertex(n/4, hna/2);}  
 if (d == 5) {vertex(-n, 0); vertex(-n/2, -hna); vertex(0, 0);}  
 if (d == 6) {vertex(-n/2, 0); vertex(0, -hna); vertex(n/2, 0);} 
 endShape(CLOSE);  
 popMatrix();  
}  
}
 
schets van de roterende gelijkbenige driehoeken   "Drieh_na"
 
 

 Vormen[] vorm = new Vormen[6]; 
 
void setup()  { 
//fullScreen(); 
size(960,540); 
float x = width/2; 
float y = height/2; 
float n = height/4; 
 
vorm[0] = new Drieh_na(n, 0, x, y, 0, color(255,0,0,100)); 
vorm[1] = new Drieh_na(n, 1, x+n/2, y, 0, color(200,0,100,100)); 
vorm[2] = new Drieh_na(n, 2, x, y, 0, color(200,200,50,100)); 
vorm[3] = new Drieh_na(n, 4, x, y, 0, color(100,200,0,100)); 
vorm[4] = new Drieh_na(n, 5, x-n/2, y, 0, color(200,0,50,100)); 
vorm[5] = new Drieh_na(n, 6, x, y, 0, color(100,200,50,100)); 
} 
 
void draw()  { 
  background(#E6FBFF); 
  //assenstelsel 
  stroke(255, 0, 0); 
  line (width/2,0, width/2, height); 
  line(0, height/2, width, height/2); 
  stroke(0);    
   
  for (int i = 0; i < 6; i++) 
    { 
  vorm[i].display(); 
    } 
     
  vorm[4].dpRotLi(vorm[4]); 
  vorm[1].dpRotRe(vorm[1]); 
   
  vorm[2].dpRotLi(vorm[2]); 
  vorm[3].dpRotRe(vorm[3]);   
} 
 
   void keyPressed() {      
   if (key == 's') {     
    noLoop();     
  }      
   if (key == 'r') {        
    loop();     
  }     
 }