hoekbalk, "Hoek3d_na4n" terug naar de inleiding
hoekbalk: n breed, a = sqrt(2n*n*); diep en 4n lang
class Hoek3d_na4n extends Vormen {
Hoek3d_na4n(float n_, int d_, float x_, float y_, float hoek_, color c1_, color c2_, color c3_, color c4_, color c5_) {
super();
n = n_;
x = x_;
y = y_;
hoek = hoek_;
c1 = c1_; c2 = c2_; c3 = c3_; c4 = c4_; c5 = c5_;
d = d_;
}
void display() {
// noStroke();
pushMatrix();
translate(x, y);
rotate(radians(hoek));
fill(c1);
beginShape();
//hoek
float a = sqrt(2*n*n);
if (d == 2) {vertex(a/2, a/2); vertex(0, 0); vertex(2*a, -2*a); vertex(4*a, 0); vertex(7*a/2, a/2); vertex(2*a, -a);}
if (d == 4) {vertex(-3*a/2, 5*a/2); vertex(-2*a, 2*a); vertex(0, 0); vertex(2*a, 2*a); vertex(3*a/2, 5*a/2); vertex(0, a);}
if (d == 6) {vertex(-7*a/2, a/2); vertex(-4*a, 0); vertex(-2*a, -2*a); vertex(0, 0); vertex(-a/2, a/2); vertex(-2*a, -a);}
endShape(CLOSE);
//paral 3naLi
fill(c2);
beginShape();
if (d == 2) {vertex(7*a/2, 3*a/2); vertex(2*a, 0);vertex(2*a, -a); vertex(7*a/2, a/2);}
if (d == 4) {vertex(3*a/2, 7*a/2); vertex(0, 2*a);vertex(0,a); vertex(3*a/2, 5*a/2);}
if (d == 6) {vertex(-a/2, 3*a/2); vertex(-2*a, 0);vertex(-2*a, -a); vertex(-a/2, a/2);}
endShape(CLOSE);
//paral 3naRe
fill(c3);
beginShape();
if (d == 2) {vertex(a/2, 3*a/2); vertex(a/2, a/2); vertex(2*a,-a); vertex(2*a, 0);}
if (d == 4) {vertex(-3*a/2, 7*a/2); vertex(-3*a/2, 5*a/2); vertex(0,a); vertex(0, 2*a);}
if (d == 6) {vertex(-7*a/2, 3*a/2); vertex(-7*a/2, a/2); vertex(-2*a,-a); vertex(-2*a, 0);}
endShape(CLOSE);
//paral naRe
fill(c5);
beginShape();
if (d == 2) {vertex(7*a/2, 3*a/2); vertex(7*a/2, a/2); vertex(4*a, 0); vertex(4*a, a);}
if (d == 4) {vertex(3*a/2, 7*a/2); vertex(3*a/2, 5*a/2); vertex(2*a, 2*a); vertex(2*a, 3*a);}
if (d == 6) {vertex(-a/2, 3*a/2); vertex(-a/2, a/2); vertex(0, 0); vertex(0, a);}
endShape(CLOSE);
//paral naLi
beginShape();
fill(c4);
if (d == 2) {vertex(0, a); vertex(0, 0); vertex(a/2, a/2); vertex(a/2, 3*a/2);}
if (d == 4) {vertex(-3*a/2, 7*a/2); vertex(-2*a, 3*a); vertex(-2*a, 2*a); vertex(-3*a/2, 5*a/2);}
if (d == 6) {vertex(-7*a/2, 3*a/2); vertex(-4*a, a); vertex(-4*a, 0); vertex(-7*a/2, a/2);}
endShape(CLOSE);
popMatrix();
}
}
Schets: in elkaar geschoven 3d hoeken
de schets maakt gebruik van de superclass: "Vormen" en de subclass: "Hoek3d_na4n"
De schets op de server met de draaipunt rotatie methoden in actie
Vormen [] vorm;
void setup() {
size(780, 560);
float x = width/2;
float y = height/2;
float n = height/18;
float a = sqrt(2*n*n);
int ch1 = color(255,0,0,100);
int ch2 = color(0,255,0,100);
int ch3 = color(0,0,255,100);
int ch4 = color(255,255,0,100);
int ch5 = color(255,0,255,100);
vorm = new Vormen[4];
vorm[0] = new Hoek3d_na4n(n, 4, x, y-5*a/2, 0,ch1,ch2,ch3,ch4,ch5);
vorm[1] = new Hoek3d_na4n(n, 4, x+5*a/2, y, 90, ch1,ch2,ch3,ch4,ch5);
vorm[2] = new Hoek3d_na4n(n, 4, x, y+5*a/2, 180, ch1,ch2,ch3,ch4,ch5);
vorm[3] = new Hoek3d_na4n(n, 4, x-5*a/2, y, 270, ch1,ch2,ch3,ch4,ch5);
}
void draw() {
background(#E6FBFF);
// background(0);
stroke(255, 0, 0);
line (width/2, 0, width/2, height);
line (0, height/2, width, height/2);
stroke(0);
for (int i = 0; i < 4; i++)
{
vorm[i].display();
}
vorm[3].dpRotLi(vorm[3]);
vorm[2].dpRotRe(vorm[2]);
vorm[1].dpRotLi(vorm[1]);
vorm[0].dpRotRe(vorm[0]);
}
void keyPressed() {
if (key == 's') {
noLoop();
}
if (key == 'r') {
loop();
}
}