achth drieh 05

 

 

Schets met achthoek en acht driehoeken

hn = (n+a)/2  is de straal van de binnencirkel van de achthoek en hoogte van de gelijkzijdige driehoek
De schuine zijde van de driehoek dan is de straal van de binnencirkel van de achthoek

 

Bekijk de roterende driehoeken

De schets maakt gebruik van de classes Vhoek_n8,    Drieh_nh,    en  de superclass  Vormen

 
 

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