Animatie met pentomino "T", "X" en "Drieh_nh"in p5.js . terug naar de inleiding
Met toets "s" stoppen de rotaties met de overige toetsen starten de rotaties weer
"T" , "X" en "Drieh_nh animatie in fullscreen
De schets maakt gebruik van objecten van de p5.js classes "T" , "X" , "Drieh_nh" en de superclass "Vormen"
let vorm = []; let cnv;
function centerCanvas() {
let x = (windowWidth - width) / 2;
let y = (windowHeight - height) / 2;
cnv.position(x, y);
}
function setup() {
cnv = createCanvas(1000,1000);
centerCanvas();
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);
let x = width/2; let y = height/2; let n = height/15;
let alfa1 = 75; let alfa2 = 125; let sw = n/50; let sc = color(0);
vorm[0] = new T(n,6 ,x-2*n,y-2*n, 0, color(224,106,130,alfa1),sw,sc);
vorm[1] = new T(n,3, x+2*n,y-2*n, 0, color(34,237,35, alfa1),sw,sc);
vorm[2] = new T(n,6, x+2*n,y+2*n, 180,color(224,106,130,alfa1),sw,sc);
vorm[3] = new T(n,3, x-2*n,y+2*n, 180,color(34,237,35, alfa1),sw,sc);
vorm[4] = new X(n,9, x-2*n, y-2*n,0, color(0,100,0, alfa1),sw,sc);
vorm[5] = new X(n,4, x+2*n, y-2*n,0, color(106,133,224,alfa1),sw,sc);
vorm[6] = new X(n,3, x+2*n, y+2*n,0, color(0, 100, 0, alfa1),sw,sc);
vorm[7] = new X(n,10,x-2*n, y+2*n,0, color(106,133,224,alfa1),sw,sc);
vorm[8] = new Drieh_nh(4*n, 2*n,0,x, y-4*n, 0,color(90,232,196,alfa2),sw,sc);
vorm[9] = new Drieh_nh(4*n, 2*n,0,x+4*n,y, 90,color(232,184,26,alfa2),sw,sc);
vorm[10] = new Drieh_nh(4*n,2*n,0,x, y+4*n,180,color(90,232,196,alfa2),sw,sc);
vorm[11] = new Drieh_nh(4*n,2*n,0,x-4*n,y, -90,color(232,184,26,alfa2),sw,sc);
}
function draw() {
clear();
background('rgba(255,255,255, 0)');
for (let i =0; i < 4; i++){vorm[i].display();}
for (let i =4; i < 8; i++){vorm[i].display();}
for (let i =8; i < 12; i++){vorm[i].display();}
if (key == 's' || key == 'S') { }
else
{
vorm[0].dpRotRe(vorm[0]); vorm[1].dpRotLi(vorm[1]);
vorm[2].dpRotRe(vorm[2]); vorm[3].dpRotLi(vorm[3]);
vorm[4].dpRotLi(vorm[4]); vorm[5].dpRotRe(vorm[5]);
vorm[6].dpRotLi(vorm[6]); vorm[7].dpRotRe(vorm[7]);
vorm[11].xLiRe(); vorm[9].xReLi();
vorm[8].yUpDown(); vorm[10].yDownUp();
}
}
function windowResized() {
centerCanvas();
}
function buttonRAction(){setup()}
function button0Action()
{vorm[0].d=6;vorm[1].d=3; vorm[2].d=6;vorm[3].d=3;vorm[4].d=9;vorm[5].d= 4;
vorm[6].d=3;vorm[7].d=10;vorm[8].d=0;vorm[9].d=0;vorm[10].d=0;vorm[11].d=0;}
function button1Action()
{vorm[0].d=3;vorm[1].d=6;vorm[2].d=3;vorm[3].d=6;vorm[4].d=8;vorm[5].d= 3;
vorm[6].d=4;vorm[7].d=9;vorm[8].d=2;vorm[9].d=2;vorm[10].d=2;vorm[11].d=2;}
function button2Action()
{vorm[0].d=7;vorm[1].d=2;vorm[2].d=7;vorm[3].d=2;vorm[4].d=6;vorm[5].d= 1;
vorm[6].d=6;vorm[7].d=7;vorm[8].d=2;vorm[9].d=2;vorm[10].d=2;vorm[11].d=2;}
function button3Action()
{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=4;vorm[9].d=4;vorm[10].d=4;vorm[11].d=4;}
function button4Action()
{vorm[0].d =6;vorm[1].d=3;vorm[2].d=6;vorm[3].d=3;vorm[4].d=41;vorm[5].d= 1;
vorm[6].d =7;vorm[7].d=5;vorm[8].d=3;vorm[9].d=3;vorm[10].d=3;vorm[11].d=3;}
function button5Action()
{vorm[0].d =2;vorm[1].d=7; vorm[2].d=2;vorm[3].d=7;vorm[4].d=10;vorm[5].d= 5;
vorm[6].d =2;vorm[7].d=11;vorm[8].d=4;vorm[9].d=4;vorm[10].d=4;vorm[11].d=4;}
function button6Action()
{vorm[0].d =4;vorm[1].d=1; vorm[2].d=4;vorm[3].d=1;vorm[4].d=11;vorm[5].d= 6;
vorm[6].d =1;vorm[7].d=12;vorm[8].d=4;vorm[9].d=4;vorm[10].d=4;vorm[11].d=4;}
function button7Action()
{vorm[0].d =4;vorm[1].d=5;vorm[2].d=5;vorm[3].d=4;vorm[4].d=12;vorm[5].d= 1;
vorm[6].d =6;vorm[7].d=7;vorm[8].d=0;vorm[9].d=0;vorm[10].d=0;vorm[11].d=0;}
function button8Action()
{vorm[0].d =7;vorm[1].d=2;vorm[2].d=7;vorm[3].d=2;vorm[4].d=10;vorm[5].d= 3;
vorm[6].d =4;vorm[7].d=9;vorm[8].d=0;vorm[9].d=0;vorm[10].d=0;vorm[11].d=0;}
function button9Action()
{vorm[0].d=5;vorm[1].d=4;vorm[2].d=5;vorm[3].d=4;vorm[4].d=12;vorm[5].dc=1;
vorm[6].d=6;vorm[7].d=7;vorm[8].d=1;vorm[9].d=1;vorm[10].d=1 ;vorm[11].dc = 1;}
function buttonDAction(){save('acht_parallellogrammen_rond_zeshoek.png');}