roterende gouden driehoeken rond een vijfhoek terug naar de inleiding
De schets maakt gebruik van objecten van de classes "Drieh_nh" , "Vhoek_n5" en objectmethodes van de superclass ¨Vormen¨.
Bekijk de 10 roterende gouden driehoeken rond een vijfhoek
Met toetsen 2 t/m 5 veranderen de draaipunten, toets 1 hersteld de oorspronkelijke instellingen
Vormen vorm0;
Vormen vorm1_1; Vormen vorm1_2;
Vormen vorm2_1; Vormen vorm2_2;
Vormen vorm3_1; Vormen vorm3_2;
Vormen vorm4_1; Vormen vorm4_2;
Vormen vorm5_1; Vormen vorm5_2;
int dp = 3;
void setup() {
size(780, 560);
// fullScreen();
float x = width/2;
float y = height/2;
float n = height/4;
float rl = sqrt(50+10*sqrt(5))*n/10; //rl is de straal van de binnencirkel van de vijfhoek
float rk = sqrt(25+10*sqrt(5))*n/10; //rk is de straal van de buitencirkel van de vijfhoek
float nphi= ((1+sqrt(5))/2)*n; //nphi is de lijn van hoek naar hoek van de vijfhoek
float phi= (1+sqrt(5))/2; //phi wordt gebruikt in bl
float bl = rl/(2*phi); //bl is de lijn van het middelpunt naar de nphi li
float h2 = sqrt(n*n-nphi*nphi/4);
vorm0 = new Vhoek_n5(n, 0, x, y, 0, color(255, 255, 0, 100));
vorm1_1 = new Drieh_nh(nphi, h2, dp, x-n/2, y+rk, -144, color(200, 0, 50, 100));
vorm1_2 = new Drieh_nh(nphi, h2, dp, x-n/2, y+rk, -144, color(200, 0, 50, 100));
vorm2_1 = new Drieh_nh(nphi, h2, dp, x-nphi/2, y-bl, -72, color(20, 200, 50, 100));
vorm2_2 = new Drieh_nh(nphi, h2, dp, x-nphi/2, y-bl, -72, color(20, 200, 50, 100));
vorm3_1 = new Drieh_nh(nphi, h2, dp, x, y-rl, 0, color(20, 20, 200, 100));
vorm3_2 = new Drieh_nh(nphi, h2, dp, x, y-rl, 0, color(20, 20, 200, 100));
vorm4_1 = new Drieh_nh(nphi, h2, dp, x+nphi/2, y-bl, 72, color(20, 200, 50, 100));
vorm4_2 = new Drieh_nh(nphi, h2, dp, x+nphi/2, y-bl, 72, color(20, 200, 50, 100));
vorm5_1 = new Drieh_nh(nphi, h2, dp, x+n/2, y+rk, 144, color(200, 0, 50, 100));
vorm5_2 = new Drieh_nh(nphi, h2, dp, x+n/2, y+rk, 144, color(200, 0, 50, 100));
}
void draw() {
background(#E6FBFF);
vorm0.display();
vorm1_1.display(); vorm1_2.display();
vorm2_1.display(); vorm2_2.display();
vorm3_1.display(); vorm3_2.display();
vorm4_1.display(); vorm4_2.display();
vorm5_1.display(); vorm5_2.display();
if (key == 's') {
}
else
{
vorm1_1.dpRotLi(vorm1_1); vorm1_2.dpRotRe(vorm1_2);
vorm2_1.dpRotRe(vorm2_1); vorm2_2.dpRotLi(vorm2_2);
vorm3_1.dpRotRe(vorm3_1); vorm3_2.dpRotLi(vorm3_2);
vorm4_1.dpRotLi(vorm4_1); vorm4_2.dpRotRe(vorm4_2);
vorm5_1.dpRotRe(vorm5_1); vorm5_2.dpRotLi(vorm5_2);
}
}
void keyPressed() {
if (key == '1') {
dp= 3;
setup();
}
if (key == '2') {
dp = 0;
setup();
}
if (key == '3') {
dp = 2;
setup();
}
if (key == '4') {
dp = 5;
setup();
}
if (key == '5') {
dp = 6;
setup();
}
}