Animatie met pentomino "N", "Z" en parallellogrammen in p5.js.                terug naar de inleiding
Met toets "s" stoppen de rotaties, met de overige toetsen starten de rotaties weer

                                                                      "N" , "Z" parallellogrammen animatie in fullscreen

 
de schets maakt gebruik van de  p5.js classes "N" , "Z" , "paral" en de p5.js superclass "Vormen"
 
 
let vorm = [];
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);
  button7 = createButton('dp 7');
  button7.position(20,270);button7.style('width','50px');
  button7.mouseClicked(button7Action);
  button8 = createButton('dp 8');
  button8.position(20,300);button8.style('width','50px');
  button8.mouseClicked(button8Action);
  button9 = createButton('dp 9');
  button9.position(20,330);button9.style('width','50px');
  button9.mouseClicked(button9Action);
  buttonD = createButton('downloaden');
  buttonD.position(20,360);buttonD.style('width','100px');
  buttonD.mouseClicked(buttonDAction);
 
  createCanvas(windowWidth, windowHeight);
   const x = width/2; const y = height/2;
   const n = height/10; let h = n; let l = n;
   const alfa1 = 100; const alfa2 = 50; const sw = n/40; const sc = color(0);
  vorm[0] = new Paral(h,  l, 1,5, x,    y+n,  0,color(255,0,0,alfa1),sw,sc);
  vorm[1] = new Paral(h,  l, 0,3, x,    y+n,  0,color(255,0,0,alfa1),sw,sc);
  vorm[2] = new Paral(h,2*l, 0,1, x-3*n,y+n,-90,color(0,255,0,alfa1),sw,sc);
  vorm[3] = new Paral(h,2*l, 1,7, x+3*n,y+n, 90,color(0,255,0,alfa1),sw,sc);
  vorm[4] = new Paral(h,3*l, 1,7, x-n,  y,  90,color(0,100,255,alfa1),sw,sc);
  vorm[5] = new Paral(h,3*l, 0,5, x+n,  y,  90,color(0,100,255,alfa1),sw,sc);
  vorm[6] = new N(n,         1,6, x-n,  y,  0, color(200,200,0,alfa2),sw,sc);
  vorm[7] = new N(n,         0,3, x+n,  y,  0, color(200,200,0,alfa2),sw,sc);
  vorm[8] = new Z(n,         0,7, x-3*n,y+n, 0,color(0,100,200,alfa2),sw,sc);
  vorm[9] = new Z(n,         1,2, x+3*n,y+n, 0,color(0,100,200,alfa2),sw,sc);
 }
 
function draw() {
//  background('#E6FBFF');
  clear();
  background('rgba(255,255,255, 0)');
//  ruitjespap.display();
  for (let i = 0; i < 10; i++) {
    vorm[i].display();}
  //  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].dpRotLi(vorm[4]); vorm[5].dpRotRe(vorm[5]);
    vorm[6].dpRotRe(vorm[6]); vorm[7].dpRotLi(vorm[7]);
    vorm[8].dpRotRe(vorm[8]); vorm[9].dpRotLi(vorm[9]);
   }
}
 
function windowResized() {
  resizeCanvas(windowWidth, windowHeight);
}
 function buttonRAction() {setup()}
 function button0Action()
 {vorm[0].d = 5; vorm[1].d = 3; vorm[2].d = 1; vorm[3].d = 7; vorm[4].d = 7;
 vorm[5].d = 5;  vorm[6].d = 6; vorm[7].d = 3; vorm[8].d = 7; vorm[9].d = 2;}
 function button1Action()
 {vorm[0].d = 5; vorm[1].d = 3; vorm[2].d = 1; vorm[3].d = 7; vorm[4].d = 7;
 vorm[5].d = 5;  vorm[6].d = 6; vorm[7].d = 3; vorm[8].d = 8; vorm[9].d = 1;}
 function button2Action()
 {vorm[0].d = 5; vorm[1].d = 3; vorm[2].d = 1; vorm[3].d = 7; vorm[4].d = 7;
 vorm[5].d = 5;  vorm[6].d = 8; vorm[7].d = 1; vorm[8].d = 5; vorm[9].d = 4;}
 function button3Action()
 {vorm[0].d = 5; vorm[1].d = 3; vorm[2].d = 7; vorm[3].d = 1; vorm[4].d = 7;
 vorm[5].d = 5;  vorm[6].d = 6; vorm[7].d = 3; vorm[8].d = 3; vorm[9].d = 6;}
 function button4Action()
 {vorm[0].d = 1; vorm[1].d = 7; vorm[2].d = 2; vorm[3].d = 6; vorm[4].d = 2;
 vorm[5].d = 2;  vorm[6].d = 8; vorm[7].d = 1; vorm[8].d = 8; vorm[9].d = 1;}
 function button5Action()
 {vorm[0].d = 7; vorm[1].d = 1; vorm[2].d = 3; vorm[3].d = 5; vorm[4].d = 5;
 vorm[5].d = 7;  vorm[6].d = 3; vorm[7].d = 6; vorm[8].d = 2; vorm[9].d = 7;}
 function button6Action()
 {vorm[0].d = 1; vorm[1].d = 7; vorm[2].d = 5; vorm[3].d = 3; vorm[4].d = 1;
 vorm[5].d = 3;  vorm[6].d = 7; vorm[7].d = 2; vorm[8].d = 4; vorm[9].d = 5;}
 function button7Action()
 {vorm[0].d = 6; vorm[1].d = 2; vorm[2].d = 8; vorm[3].d = 8; vorm[4].d = 8;
 vorm[5].d = 4;  vorm[6].d = 1; vorm[7].d = 8; vorm[8].d = 3; vorm[9].d = 6;}
 function button8Action()
 {vorm[0].d = 4; vorm[1].d = 4; vorm[2].d = 2; vorm[3].d = 6; vorm[4].d = 8;
 vorm[5].d = 4;  vorm[6].d = 5; vorm[7].d = 4; vorm[8].d = 8; vorm[9].d = 1;}
 function button9Action()
 {vorm[0].d = 3; vorm[1].d = 5; vorm[2].d = 7; vorm[3].d = 1; vorm[4].d = 1;
 vorm[5].d = 3;  vorm[6].d = 7; vorm[7].d = 2; vorm[8].d = 5; vorm[9].d = 4;}
 function buttonDAction(){save('acht_parallellogrammen_rond_zeshoek.png');}