drieh n 7

de 7 driehoeken in de draaipunten

 

drieh n 7 30

driehoeken in dp 4 en 5, 30 graden rotatie
driehoeken in dp 1 en 2, -30 graden rotatie
 
drieh n dp3 .y c*2
hn is de hoogte van de driehoek dus,
driehoek in dp 3,  y-2*hn
 
drieh nRot0
zie de schets voor de code
 
drieh nRot1
de driehoeken roteren in hun draaipunten
 
drieh nRot2
header drieh n
 
 
Gelijkzijdige driehoek "Drieh_n"                               terug naar de inleiding
 
met de zijden n
de hoogte    hn = sqrt(3*n*n/4);
 
 

class Drieh_n extends Vormen { 
Drieh_n(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 hn = sqrt(3*n*n/4);  
 beginShape(); 
 if (d == 0) {vertex(-n/2, hn/2); vertex(0, -hn/2); vertex(n/2, hn/2);}  
 if (d == 1) {vertex(0, 0); vertex(n/2, -hn); vertex(n, 0);}  
 if (d == 2) {vertex(-n/4, hn/2); vertex(n/4, -hn/2); vertex(n*3/4, hn/2);}  
 if (d == 3) {vertex(-n/2, hn); vertex(0, 0); vertex(n/2, hn);}  
 if (d == 4) {vertex(-n*3/4, hn/2); vertex(-n/4, -hn/2); vertex(n/4, hn/2);}  
 if (d == 5) {vertex(-n, 0); vertex(-n/2, -hn); vertex(0, 0);}  
 if (d == 6) {vertex(-n/2, 0); vertex(0, -hn); vertex(n/2, 0);} 
 endShape(CLOSE);  
 popMatrix();  
}  
}
 
schets met de roterende driehoeken
 
 

Vormen[] vorm = new Vormen[5]; 
void setup()  { 
//fullScreen(); 
size(960,540); 
float x = width/2; 
float y = height/2; 
float n = height/4; 
  
vorm[0] = new Drieh_n(n, 5, x-n/2,  y-n/2,  0, color(255,0,0,100)); 
vorm[1] = new Drieh_n(n, 1, x+n/2,  y-n/2,  0, color(200,0,100,100)); 
vorm[2] = new Drieh_n(n, 1, x-n/2, y+n/2,   180, color(200,200,50,100)); 
vorm[3] = new Drieh_n(n, 5, x+n/2, y+n/2,   180, color(200,200,50,100)); 
vorm[4] = new Vierk_n(n, 0, x, y,   0, color(100,200,0,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 < 5; i++) 
    { 
  vorm[i].display(); 
    }   
  vorm[0].dpRotRe(vorm[0]); 
  vorm[1].dpRotLi(vorm[1]); 
  vorm[3].dpRotRe(vorm[3]); 
  vorm[2].dpRotLi(vorm[2]); 
} 
 
void keyPressed() {     
   if (key == 's') {    
    noLoop();    
  }       
   if (key == 'r') {       
    loop();    
  }    
}