hoekbalk, "Hoek3d_na2n" terug naar de inleiding
hoekbalk: n breed, a = sqrt(2n*n*); diep en 2n lang
class Hoek3d_na2n extends Vormen {
Hoek3d_na2n(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(a, -a); vertex(2*a, 0); vertex(3*a/2, a/2); vertex(a, 0);}
if (d == 4) {vertex(-a/2, 3*a/2); vertex(-a, a); vertex(0, 0); vertex(a, a); vertex(a/2, 3*a/2); vertex(0, a);}
if (d == 6) {vertex(-3*a/2, a/2); vertex(-2*a, 0); vertex(-a, -a); vertex(0, 0); vertex(-a/2, a/2); vertex(-a, 0);}
endShape(CLOSE);
//paral naLi
fill(c2);
beginShape();
if (d == 2) {vertex(3*a/2, 3*a/2); vertex(a, a);vertex(a, 0); vertex(3*a/2, a/2);}
if (d == 4) {vertex(a/2, 5*a/2); vertex(0, 2*a);vertex(0, a); vertex(a/2, 3*a/2);}
if (d == 6) {vertex(-a/2, 3*a/2); vertex(-a, a);vertex(-a, 0); vertex(-a/2, a/2);}
endShape(CLOSE);
//paral naRe
fill(c3);
beginShape();
if (d == 2) {vertex(a/2, 3*a/2); vertex(a/2, a/2); vertex(a, 0); vertex(a, a);}
if (d == 4) {vertex(-a/2, 5*a/2); vertex(-a/2, 3*a/2); vertex(0,a); vertex(0, 2*a);}
if (d == 6) {vertex(-3*a/2, 3*a/2); vertex(-3*a/2, a/2); vertex(-a, 0); vertex(-a, a);}
endShape(CLOSE);
//paral naLi
beginShape();
fill(c4);
if (d == 2) {vertex(a/2, 3*a/2); vertex(0, a); vertex(0, 0); vertex(a/2, a/2);}
if (d == 4) {vertex(-a/2, 5*a/2); vertex(-a, 2*a); vertex(-a, a); vertex(-a/2, 3*a/2);}
if (d == 6) {vertex(-3*a/2, 3*a/2); vertex(-2*a, a); vertex(-2*a, 0); vertex(-3*a/2, a/2);}
endShape(CLOSE);
//paral naRe
fill(c5);
beginShape();
if (d == 2) {vertex(3*a/2, 3*a/2); vertex(3*a/2, a/2); vertex(2*a, 0); vertex(2*a, a);}
if (d == 4) {vertex(a/2, 5*a/2); vertex(a/2, 3*a/2); vertex(a, a); vertex(a, 2*a);}
if (d == 6) {vertex(-a/2, 3*a/2); vertex(-a/2, a/2); vertex(0, 0); vertex(0, a);}
endShape(CLOSE);
popMatrix();
}
}
Schets met 4 x Hoek3d_na2n en 2x Hoek3d_na4n.
Bekijk de, in hun draaipunt roterende, hoekbalken op deze server.
Vormen [] vorm;
void setup() {
// fullScreen();
size(789, 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,50);
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[6];
vorm[0] = new Hoek3d_na2n(n, 4, x-a, y, 0,ch1,ch2,ch3,ch4,ch5);
vorm[1] = new Hoek3d_na2n(n, 4, x+a, y, 0,ch1,ch2,ch3,ch4,ch5);
vorm[2] = new Hoek3d_na2n(n, 4, x-a, y, 180,ch1,ch2,ch3,ch4,ch5);
vorm[3] = new Hoek3d_na2n(n, 4, x+a, y, 180,ch1,ch2,ch3,ch4,ch5);
vorm[4] = new Hoek3d_na4n(n, 4, x, y-2*a, 0,ch1,ch2,ch3,ch4,ch5);
vorm[5] = new Hoek3d_na4n(n, 4, x, y+2*a,180,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 < 6; i++)
{
vorm[i].display();
}
vorm[4].dpRotLi(vorm[4]);
vorm[5].dpRotRe(vorm[5]);
}
void keyPressed() {
if (key == 's') {
noLoop();
}
if (key == 'r') {
loop();
}
}