roterende gouden driehoeken rond een vijfhoek. terug naar de inleiding
Toets "s" stopt de rotaties. met de overige toetsen starten de rotaties weer
10 roterende gouden driehoeken rond een vijfhoek in fullscreen
de schets 10 roterende gouden driehoeken rond een vijfhoek in p5.js
de schets maakt gebruik van de p5.js classes "Vhoek_n5" , "Drieh_nh" en de superclass "Vormen"
let vorm = []; let vorm0; let vijfhoek = true;
function setup() {
buttonR = createButton('reset');
buttonR.position(20,30);buttonR.style('width','50px');
buttonR.mouseClicked(buttonRAction);
button0 = createButton('dp 0');
button0.position(20,60);button0.style('width','50px');
button0.mouseClicked(button0Action);
button1 = createButton('dp 1');
button1.position(20,90);button1.style('width','50px');
button1.mouseClicked(button1Action);
button2 = createButton('dp 2');
button2.position(20,120);button2.style('width','50px');
button2.mouseClicked(button2Action);
button3 = createButton('dp 3');
button3.position(20,150);button3.style('width','50px');
button3.mouseClicked(button3Action);
button4 = createButton('dp 4');
button4.position(20,180);button4.style('width','50px');
button4.mouseClicked(button4Action);
button5 = createButton('dp 5');
button5.position(20,210);button5.style('width','50px');
button5.mouseClicked(button5Action);
button6 = createButton('dp 6');
button6.position(20,240);button6.style('width','50px');
button6.mouseClicked(button6Action);
buttonN = createButton('n');
buttonN.position(20,270);buttonN.style('width','50px');
buttonN.mouseClicked(buttonNAction);
buttonAU = createButton('vijfhoek aan/uit');
buttonAU.position(20,300);buttonAU.style('width','110px');
buttonAU.mouseClicked(buttonAUAction);
buttonD = createButton('downloaden');
buttonD.position(20,330);buttonD.style('width','110px');
buttonD.mouseClicked(buttonDAction);
createCanvas(windowWidth, windowHeight);
let x = width/2; let y = height/2; let n = height/5;
let rl = sqrt(50+10*sqrt(5))*n/10; //rl is de straal van de binnencirkel van de vijfhoek
let rk = sqrt(25+10*sqrt(5))*n/10; //rk is de straal van de buitencirkel van de vijfhoek
let nphi = ((1+sqrt(5))/2)*n; //nphi is de lijn van hoek naar hoek van de vijfhoek
let phi = (1+sqrt(5))/2; //phi wordt gebruikt in bl
let bl = rl/(2*phi); //bl is de lijn van het middelpunt naar de nphi li
let h2 = sqrt(n*n-nphi*nphi/4);
let alfa = 75; let sw = n/180; let sc = color(0);
vorm0 = new Vhoek_n5(n, 0, x, y, 0, color(255, 255, 0, alfa),sw,sc);
vorm[0] = new Drieh_nh(nphi,h2,3,x-n/2, y+rk,-144,color(200,0,50,alfa), sw,sc);
vorm[1] = new Drieh_nh(nphi,h2,3,x-n/2, y+rk,-144,color(200,0,50,alfa), sw,sc);
vorm[2] = new Drieh_nh(nphi,h2,3,x-nphi/2,y-bl,-72, color(20,200,50,alfa),sw,sc);
vorm[3] = new Drieh_nh(nphi,h2,3,x-nphi/2,y-bl,-72, color(20,200,50,alfa),sw,sc);
vorm[4] = new Drieh_nh(nphi,h2,3,x, y-rl, 0, color(20,20,200,alfa),sw,sc);
vorm[5] = new Drieh_nh(nphi,h2,3,x, y-rl, 0, color(20,20,200,alfa),sw,sc);
vorm[6] = new Drieh_nh(nphi,h2,3,x+nphi/2,y-bl, 72, color(20,200,50,alfa),sw,sc);
vorm[7] = new Drieh_nh(nphi,h2,3,x+nphi/2,y-bl, 72, color(20,200,50,alfa),sw,sc);
vorm[8] = new Drieh_nh(nphi,h2,3,x+n/2, y+rk,144, color(200,0,50,alfa), sw,sc);
vorm[9] = new Drieh_nh(nphi,h2,3,x+n/2, y+rk,144, color(200,0,50,alfa), sw,sc);
}
function draw() {
clear()
background('rgba(255,255,255, 0)');
if (vijfhoek) {vorm0.display()}
for (let i = 0; i < 10; i++) {vorm[i].display()}
if (key == 's'|| key == 'S') { }
else
{
vorm[0].dpRotLi(vorm[0]); vorm[1].dpRotRe(vorm[1]);
vorm[2].dpRotRe(vorm[2]); vorm[3].dpRotLi(vorm[3]);
vorm[4].dpRotRe(vorm[4]); vorm[5].dpRotLi(vorm[5]);
vorm[6].dpRotLi(vorm[6]); vorm[7].dpRotRe(vorm[7]);
vorm[8].dpRotRe(vorm[8]); vorm[9].dpRotLi(vorm[9]);
}
}
function windowResize() {
resizeCanvas(windowWidth, windowHeight);
}
function buttonRAction() {setup()}
function button0Action() {for(let i = 0;i< 10; i++){vorm[i].d = 0;}}
function button1Action() {for(let i = 0;i< 10; i++){vorm[i].d = 1;}}
function button2Action() {for(let i = 0;i< 10; i++){vorm[i].d = 2;}}
function button3Action() {for(let i = 0;i< 10; i++){vorm[i].d = 3;}}
function button4Action() {for(let i = 0;i< 10; i++){vorm[i].d = 4;}}
function button5Action() {for(let i = 0;i< 10; i++){vorm[i].d = 5;}}
function button6Action() {for(let i = 0;i< 10; i++){vorm[i].d = 6;}}
function buttonNAction()
{for(let i = 0;i< 10; i++){vorm[i].n = height/2}}
function buttonAUAction()
{if(vijfhoek){vijfhoek=false}else{vijfhoek=true}}
function buttonDAction() {save('driehoeken_rond_vijfhoek.png');}