schets met 9 vijfhoeken waarvan 4 roterend.               terug naar de inleiding
toets "s" stopt de rotaties met iedere ander toets starten de rotaties weer.
                                                                        roterende vijfhoeken in fullscreen
 
De schets maakt gebruik van objecten van de p5.js class  "Vhoek_n5"     en de superclass   "Vormen"
 
 

let vorm = []; let n; let x; let xpos=true; let dph=true;
let vijfhoek=true;
function setup() {
  buttonR1 = createButton('reset');
  buttonR1.position(20,30);buttonR1.style('width','50px');
  buttonR1.mouseClicked(buttonR1Action);
  buttonN = createButton('n + -');
  buttonN.position(20,60);buttonN.style('width','50px');
  buttonN.mouseClicked(buttonNAction);
  buttonDPH = createButton('dp h');
  buttonDPH.position(20,90);buttonDPH.style('width','50px');
  buttonDPH.mouseClicked(buttonDPHAction);
  buttonA = createButton('vijfhoek aan/uit');
  buttonA.position(20,120);buttonA.style('width','120px');
  buttonA.mouseClicked(buttonAAction);
  buttonD = createButton('downloaden');
  buttonD.position(20,150);buttonD.style('width','120px');
  buttonD.mouseClicked(buttonDAction);
 
  createCanvas(windowWidth, windowHeight);
  x = width/2;let y = height/2; n = height/5;
  const rl = sqrt(50+10*sqrt(5))*n/10; //rl is de lange straal
  const nphi= ((1+sqrt(5))/2)*n; //nphi is de lijn van hoek naar hoek
  const phi= ((1+sqrt(5))/2); //phi wordt gebruikt in k en bl
  const bl = rl/(2*phi); //bl is de loodlijn van het middelpunt naar de lijn van hoek naar hoek
  let alfa = 100;   let sw = n/100;  let sc = color(0);
  vorm[0] = new Vhoek_n5(n, 0, x, y, 0, color(255,255,0,  alfa),sw*2,color(255,0,0));
  vorm[1] = new Vhoek_n5(n, 1, x, y, 0, color(250,141,245,alfa),sw,sc);
  vorm[2] = new Vhoek_n5(n, 2, x, y, 0, color(111,255,174,alfa),sw,sc);
  vorm[3] = new Vhoek_n5(n, 3, x, y, 0, color(0, 255, 0,  alfa),sw,sc);
  vorm[4] = new Vhoek_n5(n, 4, x, y, 0, color(27,234,240, alfa),sw,sc);
  vorm[5] = new Vhoek_n5(n, 5, x, y, 0, color(186,250,141,alfa),sw,sc);
  vorm[6] = new Vhoek_n5(n, 6, x, y, 0, color(200, 100, 120,alfa),sw,sc);
  vorm[7] = new Vhoek_n5(n, 4, x-nphi/2, y-bl,0,color(255,207,111,alfa),sw,sc);
  vorm[8] = new Vhoek_n5(n, 2, x+nphi/2, y-bl,0,color(255,207,111,alfa),sw,sc);
}
 
function draw() {
  clear()
  background('rgba(255,255,255, 0)');
  if (vijfhoek) {vorm[0].display();}
  for (let i = 1; i < 9; i++){vorm[i].display()}
 
  if (key == 's' || key == 'S') { }
  else {
  vorm[7].dpRotLi(vorm[7]); vorm[8].dpRotRe(vorm[8]);
  vorm[1].dpRotLi(vorm[1]); vorm[5].dpRotRe(vorm[5]);
  }
}
function buttonR1Action(){setup();}
function buttonNAction(){if(xpos){vorm[2].x=x+n;vorm[4].x=x-n; xpos= false;}
else {vorm[2].x=x;vorm[4].x=x; xpos = true;}}
function buttonDPHAction(){if(dph){vorm[6].d=3;vorm[6].hoek=180;dph=false;}
else{vorm[6].d=6;vorm[6].hoek=0;dph=true;}}
function buttonAAction(){if(vijfhoek){vijfhoek=false;} else {vijfhoek=true;}}
function buttonDAction(){save('negen_vijfhoeken.png');}