![]() |
![]() |
![]() |
Schets met zes driehoeken in zevenhoek terug naar de inleiding
Bekijk de zes driehoeken in de zevenhoek
De schets maakt gebruik van objecten van de zevenhoek class "Vhoek_n7" , en objecten van de driehoek class "Drieh_nh" en de superclass Vormen
Met toetsen 1 t/m 6 en toets 0 verander je de draaipunten, met de "s" toets stopt en met de "r" toets start de animatie
Voor draaipunten 3, 0 en 6 is het rotatiepatroon symetrisch
Berekening van de rotatiehoek van de driehoeken: 128.57 - 180 = 51.43 , 2 x 51.43 = 102.86 en 3 x 51,43 = 154.29
Zie voor de x,y postie van het draaipunt van de driehoeken d == 0 in de "Vhoek_n7" class (line 31 en 32)
De driehoek, vorm[4], in de top van de zevenhoek is uitgeschakeld door de grootte 0 te maken
Vormen [] vorm;
int dp = 3;
void setup() {
size(780, 560);
// fullScreen();
float x = width/2;
float y = height/2;
float n = height/6;
float ri = n/(2*tan(PI/7)); // straal van de binnencirkel
float ro = n/(2*sin(PI/7)); //straal van de buitencirkel
float h = (ri+ro);
float sd = 2*n*cos(PI/7); // sd (short diagonal) lijn met een tussenhoek
float ld = n/(2*sin(HALF_PI/7)); // ld = lange diagonaal lijn met twee tussenhoeken
float sdt = sqrt(n*n-(sd*sd)/4); // sdt is de loodlijn van de sd lijn naar de top
float ldb = sqrt((3*n*n-ld*ld)/4+ld*n/2); //ldb is de lijn van de ld lijn naar de basis
vorm = new Vormen[8];
vorm[0] = new Vhoek_n7(n, 0, x, y, 0, color(255, 255, 0, 50));
vorm[1] = new Drieh_nh(n, h, dp, x-n/2, y+ri, -154.29, color(245,195,15,50));
vorm[2] = new Drieh_nh(n, h, dp, x-ld/2, y+(ri-ldb),-102.86, color(57,240,245,50));
vorm[3] = new Drieh_nh(n, h, dp, x-sd/2, y-(ro-sdt), -51.43, color(82,247,108,50));
vorm[4] = new Drieh_nh(0, 0, dp, x, y-ro, 0, color(255,0,0,50));
vorm[5] = new Drieh_nh(n, h, dp, x+sd/2, y-(ro-sdt), 51.43, color(82,247,108,50));
vorm[6] = new Drieh_nh(n, h, dp, x+ld/2, y+(ri-ldb), 102.86, color(57,240,245,50));
vorm[7] = new Drieh_nh(n, h, dp, x+n/2, y+ri, 154.29, color(245,195,15,50));
}
void draw() {
background(#E6FBFF);
for (int i = 0; i < 8
; 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].dpRotLi(vorm[5]);
vorm[6].dpRotRe(vorm[6]);
vorm[7].dpRotLi(vorm[7]);
}
void keyPressed() {
if (key == 's') {
noLoop();
}
if (key == 'r') {
loop();
}
if (key == '1') {
dp = 1;
loop();
setup();
}
if (key == '2') {
dp = 2;
loop();
setup();
}
if (key == '3') {
dp = 3;
loop();
setup();
}
if (key == '4') {
dp = 4;
loop();
setup();
}
if (key == '5') {
dp = 5;
loop();
setup();
}
if (key == '6') {
dp = 6;
loop();
setup();
}
if (key == '0') {
dp = 0;
loop();
setup();
}
}