Schets met acht  parallellogrammen  rond zeshoek                 terug naar de inleiding
Met toets "s" stoppen de rotaties met iedere andere toets starten de rotaties weer

                                                                            acht parallellogrammen rond de zeshoek in fullscreen

 

de schets in p5.js
De schets maakt gebruik van objecten van de p5.js classes "Vhoek_n2a4" , "paral" en de superclass "Vormen"
 
 

//animatie met 8 parallellogrammen met hoogten = n en  lengte = 2n
vorm = []; let zeshoek = true; ruitjes = false; let ruitjespap;
function setup() {
 createCanvas(windowWidth, windowHeight);
 buttonR = createButton('reset');
 buttonR.position(20,40);buttonR.style('width','70px');
 buttonR.mouseClicked(buttonRAction);
 button0 = createButton('dp 0');
 button0.position(20,80);button0.style('width','70px');
 button0.mouseClicked(button0Action);
 button1 = createButton('dp 1');
 button1.position(20,120);button1.style('width','70px');
 button1.mouseClicked(button1Action);
 button2 = createButton('dp 2');
 button2.position(20,160);button2.style('width','70px');
 button2.mouseClicked(button2Action);
 button3 = createButton('dp 3');
 button3.position(20,200);button3.style('width','70px');
 button3.mouseClicked(button3Action);
 button4 = createButton('dp 4');
 button4.position(20,240);button4.style('width','70px');
 button4.mouseClicked(button4Action);
 buttonZ = createButton('zeshoek aan/uit');
 buttonZ.position(20,280);buttonZ.style('width','120px');
 buttonZ.mouseClicked(buttonZAction);
 buttonRuitjes = createButton('ruitjes aan/uit');
 buttonRuitjes.position(20,320);buttonRuitjes.style('width','120px');
 buttonRuitjes.mouseClicked(buttonRuitjesAction);
 buttonD = createButton('downloaden');
 buttonD.position(20,360);buttonD.style('width','120px');
 buttonD.mouseClicked(buttonDAction);
 let x = width/2; let y = height/2; let n = height/7;
 let h = n; let l = 2*n;
 let alfa = 100; let sw = n/100; let sc = 0;
 vorm[0] = new Paral(h, l, 0, 5, x-n/2, y-n, 90,color(255,255,0, alfa),sw,sc);
 vorm[1] = new Paral(h, l, 1, 3, x+n/2, y-n,-90,color(255,255,0, alfa),sw,sc);
 vorm[2] = new Paral(h, l, 1, 7, x-1.5*n, y, 0, color(0,255,0,   alfa),sw,sc);
 vorm[3] = new Paral(h, l, 0, 1, x+1.5*n, y, 0, color(0,100,255, alfa),sw,sc);
 vorm[4] = new Paral(h, l, 0, 5, x-1.5*n, y, 0, color(0,255,0,   alfa),sw,sc);
 vorm[5] = new Paral(h, l, 1, 3, x+1.5*n, y, 0, color(0,100,255, alfa),sw,sc);
 vorm[6] = new Paral(h, l, 1, 3, x-n/2, y+n,90, color(245,177,67,alfa),sw,sc);
 vorm[7] = new Paral(h, l, 0, 1, x+n/2, y+n,90, color(245,177,67,alfa),sw,sc);
 vorm[8] = new Vhoek_n2a4(n, 0, x, y, 0, color(100, 200, 0, alfa),sw,sc);
 ruitjespap = new Ruitjes(n, x, y);
}
 
function draw() {
  //background("#E6FBFF");
 clear();
 background('rgba(255,255,255, 0)');
 for (let i = 0; i < 8; i++){vorm[i].display();}
 if (zeshoek) {vorm[8].display();}
 
 if (ruitjes) {ruitjespap.display();
   for(let i = 0; i < 8; i++){vorm[i].dpAan();}}
 
 if (key == 's'|| key == 'S') {  }
    else
  {
  vorm[0].dpRotRe(vorm[0]); vorm[1].dpRotLi(vorm[1]);
  vorm[2].dpRotLi(vorm[2]); vorm[3].dpRotRe(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]);
 }
}
 
function buttonRAction(){setup();}
function button0Action()
 {vorm[0].d = 5; vorm[1].d = 3; vorm[2].d = 7; vorm[3].d = 1;
  vorm[4].d = 5; vorm[5].d = 3; vorm[6].d = 3; vorm[7].d = 1;}
function button1Action()
 {vorm[0].d = 7; vorm[1].d = 1; vorm[2].d = 7; vorm[3].d = 1;
  vorm[4].d = 5; vorm[5].d = 3; vorm[6].d = 1; vorm[7].d = 3;}
function button2Action()
  {vorm[0].d = 5;vorm[1].d = 3; vorm[2].d = 5; vorm[3].d = 3;
  vorm[4].d = 7; vorm[5].d = 1; vorm[6].d = 3; vorm[7].d = 1;}
function button3Action()
  {vorm[0].d = 7;vorm[1].d = 1; vorm[2].d = 5; vorm[3].d = 3;
  vorm[4].d = 7; vorm[5].d = 1; vorm[6].d = 1; vorm[7].d = 3;}
function button4Action()
  {vorm[0].d=6; vorm[1].d=2; vorm[6].d=2; vorm[7].d=2 }
function buttonZAction()
  {if(zeshoek){zeshoek=false;} else {zeshoek=true;}}
function buttonRuitjesAction()
  {if(ruitjes){ruitjes=false;} else {ruitjes=true;}}
function buttonDAction(){save('parallellogrammen_rond_zeshoek.png');}