acht pijlen rond achthoek    terug naar de inleiding       ga naar de animatie in fullScreen  Met de d toets de animatie downloaden
 
De schets maakt gebruik van objectmethodes van de superclass "Vormen" en de objecten van de classes "Vhoek_n8" en "Vlieger"

De korte diameter van de vlieger c is float c = sqrt(a*a/2+a*n+n*n);  dit is de lijn tussen een hoek van de achthoek.

bekijk de draaiende pijlen

De toetsfuncties
toets "1" terug naar de oorspronkelijke situatie
toetsen "2" t/m "6" veranderen van de draaipunten
toetsen "7" t/m "9" veranderen lengte van de korte diagonaal van de vlieger
toets "0"  uitschakelen van de achthoek

toets "s" stoppen van de rotaties met iedere andere toets starten de rotaties weer

constructor argumenten van de vlieger:

 1)  lengte korte diagonaal, 2)  lengte top naar korte diagonaal, 3) lengte punt naar korte diagonaal
 4)  draaipunt, 5) x positie, 6) y positie, 7) hoek, 8) kleur

 

Vormen [] vorm;  
int dp = 0; 
int Vhoek = 1; 
float c2 = 1; 
void setup() {  
 // fullScreen(); 
 //size(780, 560);  
 size(880, 760);  
 float x = width/2;  
 float y = height/2;  
 float n = height/10;  
 float a = sqrt(2*n*n);  
 float c = c2*sqrt(a*a/2+a*n+n*n);  
 vorm = new Vormen[9];  
 vorm[0] = new Vhoek_n8(n*Vhoek, 0, x, y, 0, color(255, 255, 0, 100));
//                     1    2   3    4    5       6        7      8 
 vorm[1] = new Vlieger(c, 3*n, -a, 3+dp, x-n/2, y-(n+a)/2, 22, color(255, 0, 0, 100));  
 vorm[2] = new Vlieger(c, 3*n, -a, 3+dp, x+(n+a)/2, y-n/2, 112, color(0, 255, 0, 100));  
 vorm[3] = new Vlieger(c, 3*n, -a, 3+dp, x+n/2, y+(n+a)/2, 202.5,color(0, 0, 255, 100));  
 vorm[4] = new Vlieger(c, 3*n, -a, 3+dp, x-(n+a)/2, y+n/2, -67.5,color(255, 255, 100, 100));  
 vorm[5] = new Vlieger(c, 3*n, -a, 1+dp, x-n/2, y-(n+a)/2, -22, color(255, 0, 255, 100));  
 vorm[6] = new Vlieger(c, 3*n, -a, 1+dp, x+(n+a)/2, y-n/2, 68, color(0, 255, 255, 100));  
 vorm[7] = new Vlieger(c, 3*n, -a, 1+dp, x+n/2, y+(n+a)/2, -202.5,color(0, 255, 100, 100));  
 vorm[8] = new Vlieger(c, 3*n, -a, 1+dp, x-(n+a)/2, y+n/2, 248, color(0, 100, 255, 100));  
}  
  
void draw() {  
 background(#E6FBFF);
 
for (int i = 0; i < 9; i++)  
 { 
 vorm[i].display();  
 }  
 if (key == 's') {  
  
 }  
 else  
 {  
 vorm[2].dpRotLi(vorm[2]);  
 vorm[1].dpRotRe(vorm[1]);  
  
 vorm[4].dpRotLi(vorm[4]);  
 vorm[3].dpRotRe(vorm[3]);  
 vorm[5].dpRotLi(vorm[5]);  
 vorm[6].dpRotRe(vorm[6]);  
  
 vorm[7].dpRotLi(vorm[7]);  
 vorm[8].dpRotRe(vorm[8]);  
 }  
} 

void keyPressed() {  
   if (key == '0') { 
   Vhoek = 0; 
   setup(); 
 }  
 
 if (key == '1') {  
   dp = 0;
   Vhoek = 1; 
   setup();  
 }  
 if (key == '2') {  
   dp = 1;  
   setup();  
}  
 if (key == '3') {  
   dp = 2;  
   setup();  
}  
 if (key == '4') {  
   dp = 3;  
   setup();  
}  
 if (key == '5') {  
   dp = 4;  
   setup(); 
 } 
 if (key == '6') {  
   dp = 5;  
   setup(); 
 } 
 if (key == '7') {  
   c2 = 0.5;  
   setup(); 
 } 
 if (key == '8') {  
   c2 = 2;  
   setup(); 
 } 
 if (key == '9') {  
   c2 = 3;  
   setup(); 
 } 
}