Box_n4naLi terug naar de inleiding
Dit is een box met een rechthoek n x 4*n en twee naar links wijzende parallellogrammen, lengte schuine zijde a = sqrt(2*n*n);
class Box_n4naLi extends Vormen {
Box_n4naLi(float n_, int d_, float x_, float y_, float hoek_, color c1_, color c2_, color c3_) {
super();
n = n_;
x = x_;
y = y_;
hoek = hoek_;
c1 = c1_; c2 = c2_; c3 = c3_;
d = d_;
}
void display() {
// noStroke();
pushMatrix();
translate(x, y);
rotate(radians(hoek));
beginShape();
//Vierkant
fill(c1);
if (d == 4) {vertex(0, 0); vertex(-n, 0); vertex(-n, -4*n); vertex(0, -4*n);}
if (d == 0) {vertex(n, 5*n/2);vertex(0, 5*n/2); vertex(0, -3*n/2);vertex(n, -3*n/2);}
if (d == 2) {vertex(2*n, 5*n); vertex(n, 5*n); vertex(n, n); vertex(2*n, n);}
endShape(CLOSE);
beginShape();
fill(c2);
//parallel rechts
if (d == 4) {vertex(0, -4*n); vertex(-n, -4*n); vertex(-2*n, -5*n);vertex(-n, -5*n);}
if (d == 0) {vertex(0, -3*n/2);vertex(-n, -5*n/2);vertex(0, -5*n/2); vertex(n, -3*n/2);}
if (d == 2) {vertex(0, 0); vertex(n, 0); vertex(2*n, n); vertex(n, n);}
endShape(CLOSE);
beginShape();
fill(c3);
//parallel links
if (d == 4) {vertex(-n, 0); vertex(-2*n, -n);vertex(-2*n, -5*n);vertex(-n, -4*n);}
if (d == 0) {vertex(0, 5*n/2); vertex(-n, 3*n/2); vertex(-n, -5*n/2); vertex(0, -3*n/2);}
if (d == 2) {vertex(n, 5*n); vertex(0, 4*n); vertex(0, 0); vertex(n, n);}
endShape(CLOSE);
popMatrix();
}
}
Schets met li en re rotatie Box_n4naRe en Box_n4naLi.
De 4 roterende boxen op de server
Vormen vorm1; Vormen vorm2; Vormen vorm3; Vormen vorm4;
void setup() {
size(960, 540);
float x = 0;
float y = 0;
float n = height/18;
float a = sqrt(2*n*n);
vorm1 = new Box_n4naLi(n, 4, x, y-a/2, -45, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));
vorm2 = new Box_n4naRe(n, 1, x, y-a/2, 45, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));
vorm3 = new Box_n4naLi(n, 4, x, y+a/2, 135, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));
vorm4 = new Box_n4naRe(n, 1, x, y+a/2, 225, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));
}
void draw() {
background(#E6FBFF);
stroke(255, 0, 0);
line (width/2, 0, width/2, height);
line (0, height/2, width, height/2);
stroke(0);
pushMatrix();
translate(width/2,height/2);
vorm1.draaienLi();
vorm1.display();
vorm2.display();
popMatrix();
pushMatrix();
translate(width/2,height/2);
vorm3.draaienRe();
vorm3.display();
vorm4.display();
popMatrix();
}
void keyPressed() {
if (key == 's') {
noLoop();
}
if (key == 'r') {
loop();
}
}