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();
}
}