Schets met roterende ellipsen en driehoeken in p5.js. terug naar de inleiding
de "s" toets stopt de rotaties de overige toetsen starten de rotaties weer
ellipsen en driehoeken in fullscreen
De schets maakt gebruik van de p5.js superclass, "Vormen" en van de p5.js subclasses "Drieh_nh", en "Ellips".
De rechthoekige driehoek heeft als basis 2*n en als hoogte n
De gelijkbenige driehoek heeft als basis n en als hoogte 2*n , zo zijn de hoogten van de driehoeken gelijk aan de stalen van de ellipsen
let vorm =[]; zwartwit = false;
function setup() {
buttonR1 = createButton('reset');
buttonR1.position(20,30);buttonR1.style('width','70px');
buttonR1.mouseClicked(buttonR1Action);
buttonZW = createButton('zwart/wit');
buttonZW.position(20,60);buttonZW.style('width','120px');
buttonZW.mouseClicked(buttonZWAction);
buttonD = createButton('downloaden');
buttonD.position(20,90);buttonD.style('width','100px');
buttonD.mouseClicked(buttonDAction);
createCanvas(windowWidth, windowHeight);
let x=width/2 , y=height/2 , n=height/5 , alfa=100, sw=n/100, sc=color(0);
vorm[0] = new Ellips(n, n*2, 3, x-n, y, 45,color(222,144,92,alfa),sw,sc);
vorm[1] = new Ellips(n, n*2, 1, x+n, y,-45,color(222,144,92,alfa),sw,sc);
vorm[2] = new Drieh_nh(n*2,n*2, 5, x-n, y, 45,color(0, 255, 0,alfa),sw,sc);
vorm[3] = new Drieh_nh(n*2,n*2, 1, x+n, y,-45,color(0, 255, 0,alfa),sw,sc);
vorm[4] = new Ellips(n, n, 0, x, y, 0,color(222,144,92,alfa),sw,sc);
vorm[5] = new Drieh_nh(n*2,n, 6, x, y,180,color(255, 29, 0,alfa),sw,sc);
}
function draw() {
if (zwartwit) {background(0)}
else {clear(); background('rgba(255,255,255, 0)');}
for (let i = 0; i < 6; i++){vorm[i].display()}
if (key == 's' || key == 'S') { }
else {
vorm[0].dpRotLi(vorm[0]); vorm[2].dpRotRe(vorm[2]);
vorm[3].dpRotLi(vorm[3]); vorm[1].dpRotRe(vorm[1]);
}
}
function buttonR1Action(){setup();}
function buttonZWAction()
{if(zwartwit){zwartwit = false;} else {zwartwit=true;}}
function buttonDAction(){save('ellipsen_driehoeken.png');}