De schets maakt gebruik van de class "BezierQuadrCub" zie curven classes en de superclass ¨Curven¨
De schets bestaat uit 4 bezierquadratic cubic objecten, waarvan object1 is samengesteld mbv de Bezierquadratic cubic curve, constructor creator
waarmee je de 3 ankerpunten (rood, groen en blauw) en de controlepunten (geel, paars en bruin) in een gewenste positie kan plaatsen.
De coordinaten van deze punten vervolgens als argumenten in de constructor plaatsen
De overige 3 objecten zijn gespiegeld in de x en y as
Omdat quadraticVertex() niet met processing.js werkt draait de schets, omgezet naar p5.js in de WEBGL mode, op deze server.
De schets in p5.js werkt ook niet op openprocessing maar draait wel, met een nieuwere versie van p5.js op deze server.
Het kunstwerk heet "Bezier structuur". in fullScreen.
Met de "s" toets stoppen, en met de "r" toets starten de bewegingen weer. met de "d" toets een afbeelding van de animatie downloaden
Curven object1;
Curven object2;
Curven object3;
Curven object4;
float x;
float y;
float n;
void setup() {
//size(960, 540);
fullScreen();
x = width/2;
y = height/2;
n = height/20;
//a1=rood, a2=groen en a3=blauw
object1 = new BezierQuadrCub(x-7*n,y-7*n, x,y-2*n, x,y+5*n,
//c1=geel, c2=paars en c3=bruin
x,y-4*n, x-7*n,y-5*n, x-7*n,y,
color(237, 17, 17,100));
//a1=rood, a2=groen en a3=blauw
object2 = new BezierQuadrCub(x+7*n,y-7*n, x,y-2*n, x,y+5*n,
//c1=geel, c2=paars en c3=bruin
x,y-4*n, x+7*n,y-5*n, x+7*n,y,
color(273, 17, 17,100));
//a1=rood, a2=groen en a3=blauw
object3 = new BezierQuadrCub(x+7*n,y+7*n, x,y+2*n, x,y-5*n,
//c1=geel, c2=paars en c3=bruin
x,y+4*n, x+7*n,y+5*n, x+7*n,y,
color(237, 17, 17,100));
//a1=rood, a2=groen en a3=blauw
object4 = new BezierQuadrCub(x-7*n,y+7*n, x,y+2*n, x,y-5*n,
//c1=geel, c2=paars en c3=bruin
x,y+4*n, x-7*n,y+5*n, x-7*n,y,
color(273, 17, 17,100));
}
void draw() {
background(#E6FBFF);
strokeWeight(2);
object1.display();
object2.display();
object3.display();
object4.display();
object1.ya2Up();
object1.ya3Down();
object2.ya2Up();
object2.ya3Down();
object3.ya3Down();
object3.ya2Up();
object4.ya3Down();
object4.ya2Up();
if (frameCount > 600)
{
object1.ya1= y+7*n;
object2.ya1= y+7*n;
object3.ya1= y-7*n;
object4.ya1= y-7*n;
}
if (frameCount > 600 && frameCount < 1200)
{
object1.ya1= y-7*n;
object2.ya1= y-7*n;
object3.ya1= y+7*n;
object4.ya1= y+7*n;
}
if (frameCount > 1200) frameCount = 0;
}
void keyPressed() {
if (key == 's') {
noLoop();
}
if (key == 'r') {
loop();
}
}