roterende gouden driehoeken en rechthoeken terug naar de inleiding Bekijk de roterende gouden driehoeken en rechthoeken
De schets maakt gebruik van objecten van de classes "Rechthoek", "Drieh_nh" , "Vhoek_n5" en de superclass ¨Vormen¨.
Met toetsen 1t/m5 veranderen de draaipunten. Met de "s" toets stopt, en met de overige toetsen starten de rotaties
Vormen[] vorm = new Vormen[9];
int dpDrieh1 = 5;
int dpDrieh2 = 1;
int dpR = 0;
void setup() {
size(780, 560);
float x = width/2;
float y = height/2;
float n = height/5;
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 h1 = (rl+rk); //h1 = lijn van vlak naar hoek, is de hoogtelijn van de gouden driehoek
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 nphi = n+n/phi; //nphi is de lengte van de gouden rechthoek
vorm[0] = new Vhoek_n5(n, 0, x, y, 0, color(255, 255, 0, 100));
vorm[1] = new Rechthoek(n, nphi, 7, x-nphi/2, y-bl, 0, color(100, 255, 0, 100));
vorm[2] = new Rechthoek(n, nphi, 1, x+nphi/2, y-bl, 0, color(252, 110, 114, 50));
vorm[3] = new Rechthoek(n, nphi, 5, x-n/2, y+rk, 0, color(252, 110, 114, 50));
vorm[4] = new Rechthoek(n, nphi, 3, x+n/2, y+rk, 0, color(122, 200, 100, 50));
vorm[5] = new Drieh_nh(n, h1, dpDrieh2, x-nphi/2, y-bl, -36,color(200, 200, 50, 50));
vorm[6] = new Drieh_nh(n, h1, dpDrieh1, x+nphi/2, y-bl, 36, color(200, 200, 50, 50));
vorm[7] = new Drieh_nh(n, h1, dpDrieh2, x-n/2, y+rk, 180,color(200, 200, 50, 50));
vorm[8] = new Drieh_nh(n, h1, dpDrieh1, x+n/2, y+rk, 180,color(200, 200, 50, 50));
}
void draw() {
background(#E6FBFF);
for (int i =0; i < 9; i++)
{
vorm[i].display();
}
if (key == 's') {
}
else
{
vorm[1].dpRotLi(vorm[1]);
vorm[2].dpRotRe(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 == '1') {
dpDrieh1 = 5; dpDrieh2 = 1;
setup();
}
if (key == '2') {
dpDrieh1 = 4; dpDrieh2 = 2;
setup();
}
if (key == '3') {
dpDrieh1 = 6; dpDrieh2 = 6;
setup();
}
if (key == '4') {
dpDrieh1 =2; dpDrieh2 = 4;
setup();
}
if (key == '5') {
dpDrieh1 = 1; dpDrieh2 = 5;
setup();
}
}