class Vhoek_na4 extends Vormen {
Vhoek_na4(float n_, int d_, float x_, float y_, float hoek_, color c1_) {
super();
n = n_;
x = x_;
y = y_;
hoek = hoek_;
c1 = c1_;
d = d_;
}
void display() {
fill(c1);
pushMatrix();
translate(x, y);
rotate(radians(hoek));
beginShape();
if (d == 0) {vertex(-n/2,3*n/2); vertex(-3*n/2,n/2); vertex(-3*n/2,-n/2);vertex(-n/2,-3*n/2);
vertex(n/2,-3*n/2); vertex(3*n/2,-n/2); vertex(3*n/2,n/2); vertex(n/2,3*n/2);}
if (d == 1) {vertex(0,0); vertex(-n,-n); vertex(-n,-2*n);vertex(0,-3*n);
vertex(n,-3*n); vertex(2*n,-2*n);vertex(2*n,-n); vertex(n,0);}
if (d == 2) {vertex(n,n); vertex(0,0); vertex(0,-n); vertex(n,-2*n);
vertex(2*n,-2*n);vertex(3*n,-n); vertex(3*n,0); vertex(2*n,n);}
if (d == 3) {vertex(n,2*n); vertex(0,n); vertex(0,0); vertex(n,-n);
vertex(2*n,-n); vertex(3*n,0); vertex(3*n,n); vertex(2*n,2*n);}
if (d == 4) {vertex(0,3*n); vertex(-n,2*n); vertex(-n,n); vertex(0,0);
vertex(n,0); vertex(2*n,n); vertex(2*n,2*n);vertex(n,3*n);}
if (d == 5) {vertex(-n,3*n); vertex(-2*n,2*n);vertex(-2*n,n); vertex(-n,0);
vertex(0, 0); vertex(n, n); vertex(n,2*n); vertex(0,3*n);}
if (d == 6) {vertex(-2*n,2*n);vertex(-3*n,n); vertex(-3*n,0); vertex(-2*n,-n);
vertex(-n,-n); vertex(0,0); vertex(0,n); vertex(-n,2*n);}
if (d == 7) {vertex(-2*n,n); vertex(-3*n,0); vertex(-3*n,-n);vertex(-2*n,-2*n);
vertex(-n,-2*n); vertex(0,-n); vertex(0, 0); vertex(-n,n);}
if (d == 8) {vertex(-n,0); vertex(-2*n,-n); vertex(-2*n,-2*n);vertex(-n,-3*n);
vertex(0,-3*n); vertex(n,-2*n); vertex(n,-n); vertex(0,0);}
if (d == 9) {vertex(-n/2,0); vertex(-3*n/2,-n); vertex(-3*n/2,-2*n);vertex(-n/2,-3*n);
vertex(n/2,-3*n);vertex(3*n/2,-2*n);vertex(3*n/2,-n); vertex(n/2,0);}
if (d == 10){vertex(-n/2,3*n);vertex(-3*n/2,2*n);vertex(-3*n/2,n); vertex(-n/2,0);
vertex(n/2,0); vertex(3*n/2,n); vertex(3*n/2,2*n); vertex(n/2,3*n);}
endShape(CLOSE);
popMatrix();
}
}
schets met 8 roterende achthoeken
De schets maakt gebruik van de class "Vhoek_na4" en de superclass "Vormen"
Met toetsen 1, 2, 3 en 4 veranderen de draaipunten.
Vormen [] vorm;
int dp1 = 0;
int dp2 = 0;
void setup() {
size(780, 560);
//fullScreen();
float x = width/2;
float y = height/2;
float n = height/12;
vorm = new Vormen[8];
vorm[0] = new Vhoek_na4(n, 1+dp1, x-5*n, y, 0, color(200, 255, 0, 100));
vorm[1] = new Vhoek_na4(n, 8-dp1, x-n, y, 0, color(142, 247, 166, 100));
vorm[2] = new Vhoek_na4(n, 1+dp1, x+n, y, 0, color(35,204,232, 100));
vorm[3] = new Vhoek_na4(n, 8-dp1, x+5*n, y, 0, color(222,142,247, 100));
vorm[4] = new Vhoek_na4(n, 4+dp2, x-5*n, y, 0, color(222,142,247, 100));
vorm[5] = new Vhoek_na4(n, 5-dp2, x-n, y, 0, color(35,204,232, 100));
vorm[6] = new Vhoek_na4(n, 4+dp2, x+n, y, 0, color(142, 247, 166, 100));
vorm[7] = new Vhoek_na4(n, 5-dp2, x+5*n, y, 0, color(200, 255, 0, 100));
}
void draw() {
background(#E6FBFF);
strokeWeight(2);
for (int i = 0; i< 8; i++)
{
vorm[i].display();
}
vorm[0].dpRotLi(vorm[0]);
vorm[4].dpRotRe(vorm[4]);
vorm[1].dpRotRe(vorm[1]);
vorm[5].dpRotLi(vorm[5]);
vorm[2].dpRotLi(vorm[2]);
vorm[6].dpRotRe(vorm[6]);
vorm[3].dpRotRe(vorm[3]);
vorm[7].dpRotLi(vorm[7]);
}
void keyPressed() {
if (key == 's') {
noLoop();
}
if (key == 'r') {
loop();
}
if (key == '1') {
dp1 = 0;
dp2 = 0;
loop();
setup();
}
if (key == '2') {
dp1 = 1;
dp2 = 1;
loop();
setup();
}
if (key == '3') {
dp1 = 2;
dp2 = 3;
loop();
setup();
}
if (key == '4') {
dp1 = 4;
dp2 = 3;
loop();
setup();
}
}