zeshoeken 1 t/m 6 in hun draaipunten

 

 

zeshoeken 1 t/m 8 in hun draaipunten

 

 

 

 

de vier roterende zeshoeken
zie de schets voor de code
 
 
 
 
header Vhoek n6
 
zeshoek "Vhoek_n6"                                                    naar het voorbeeld       animatie met negen zeshoeken
 
De zeshoek bestaat uit 6 gelijkzijdige driehoeken met zijde n.       ga naar de site met de formules
De binnenhoek is 120 graden. De zeshoek staat bij een hoek van 30 graden op een hoekpunt.
hoogte van vlak naar vlak  of diameter van de binnencirkel   = 2*hn = 2*sqrt(3*n*n/4);  =  n*sqrt(3);   sqrt(3); wordt ook wel de theodorus constante genoemd
hoogte van hoek naar hoek of diameter van de buitencirkel  = 2*n
 
 

class Vhoek_n6 extends Vormen { 
Vhoek_n6(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);  
 // noStroke();  
 pushMatrix();  
 translate(x, y);  
 rotate(radians(hoek)); 
 float  hn = sqrt(3*n*n/4); 
 beginShape();  
 if (d == 0) {vertex(-n/2,hn);  vertex(-n,0);      vertex(-n/2,-hn);   
              vertex(n/2,-hn);  vertex(n,0);       vertex(n/2,hn);}   
 if (d == 1) {vertex(0,0);      vertex(-n/2,-hn);  vertex(0,-2*hn);   
              vertex(n,-2*hn);  vertex(3*n/2,-hn); vertex(n,0);}   
 if (d == 2) {vertex(n/2,hn);   vertex(0,0);       vertex(n/2,-hn);    
              vertex(3*n/2,-hn);vertex(2*n,0);     vertex(3*n/2,hn);}   
 if (d == 3) {vertex(0,2*hn);   vertex(-n/2,hn);   vertex(0,0);    
              vertex(n,0);      vertex(3*n/2,hn);  vertex(n,2*hn);}  
 if (d == 4) {vertex(-n,2*hn);  vertex(-3*n/2,hn); vertex(-n,0);    
              vertex(0,0);      vertex(n/2,hn);    vertex(0,2*hn);}  
 if (d == 5) {vertex(-3*n/2,hn);vertex(-2*n ,0);   vertex(-3*n/2,-hn);    
              vertex(-n/2,-hn); vertex(0,0);       vertex(-n/2,hn);}   
 if (d == 6) {vertex(-n,0);     vertex(-3*n/2,-hn);vertex(-n,-2*hn);    
              vertex(0,-2*hn);  vertex(n/2,-hn);   vertex(0,0);}  
 if (d == 7) {vertex(-n/2,0);   vertex(-n,-hn);    vertex(-n/2,-2*hn);    
              vertex(n/2,-2*hn);vertex(n,-hn);     vertex(n/2,0);}  
 if (d == 8) {vertex(-n/2,2*hn);vertex(-n,hn);     vertex(-n/2,0);    
              vertex(n/2,0);    vertex(n,hn);      vertex(n/2,2*hn);}   
 endShape(CLOSE);  
 popMatrix();  
 }  
} 

 
schets met 4 roterende zeshoeken
 
 
 

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