Draaipunten 0 t/m 8
trapezium "Trap_2nn" terug naar de inleiding zie ook het voorbeeld "ruiten en trapeziums"
basis = 2*n
schuine zijden en top = n
de hoogte hn = sqrt(3*n*n/4);
class Trap_2nn extends Vormen {
Trap_2nn(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);
// noStroke();
pushMatrix();
translate(x, y);
rotate(radians(hoek));
beginShape();
float hn = sqrt(3*n*n/4);
if (d == 0) {vertex(-n, hn/2); vertex(-n/2, -hn/2); vertex(n/2, -hn/2); vertex(n, hn/2);}
if (d == 1) {vertex(0, 0); vertex(n/2, -hn); vertex(3*n/2, -hn); vertex(2*n, 0);}
if (d == 2) {vertex(-n/4, hn/2);vertex(n/4, -hn/2); vertex(5*n/4, -hn/2); vertex(7*n/4, hn/2);}
if (d == 3) {vertex(-n/2, hn); vertex(0, 0); vertex(n, 0); vertex(3*n/2, hn);}
if (d == 4) {vertex(-n, hn); vertex(-n/2, 0); vertex(n/2, 0); vertex(n, hn);}
if (d == 5) {vertex(-3*n/2, hn); vertex(-n, 0); vertex(0, 0); vertex(n/2, hn);}
if (d == 6) {vertex(-7*n/4, hn/2); vertex(-5*n/4, -hn/2); vertex(-n/4, -hn/2);vertex(n/4, hn/2);}
if (d == 7) {vertex(-2*n, 0); vertex(-3*n/2, -hn); vertex(-n/2, -hn); vertex(0, 0);}
if (d == 8) {vertex(-n, 0); vertex(-n/2, -hn); vertex(n/2, -hn); vertex(n, 0);}
endShape(CLOSE);
popMatrix();
}
}
schets met de roterende, en op en neer bewegende, trapeziums
zie de roterende en op en neer bewegende trapeziums
Vormen [] vorm;
void setup() {
//fullScreen();
size(780, 560);
float x = width/2;
float y = height/2;
float n = height/9;
vorm = new Vormen[8];
vorm[0] = new Trap_2nn(n, 1, x-n, y-n, -90, color(255, 255, 0, 100));
vorm[1] = new Trap_2nn(n, 7, x+n, y-n, 90, color(255, 0, 0, 100));
vorm[2] = new Trap_2nn(n, 8, x-n, y, -90, color(0, 0, 255, 100));
vorm[3] = new Trap_2nn(n, 8, x+n, y, 90, color(0, 255, 0, 100));
vorm[4] = new Trap_2nn(n, 7, x-n, y+n, -90, color(0, 255, 255, 100));
vorm[5] = new Trap_2nn(n, 1, x+n, y+n, 90, color(255, 0, 200, 100));
vorm[6] = new Trap_2nn(n, 8, x, y+4*n, 0, color(200, 0, 50, 100));
vorm[7] = new Trap_2nn(n, 8, x, y-4*n, 180, color(255, 100, 0, 100));
}
void draw() {
background(#E6FBFF);
//assenstelsel
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< 8; i++)
{
vorm[i].display();
}
vorm[6].yUpDown();
vorm[7].yDownUp();
vorm[0].dpRotRe(vorm[0]);
vorm[1].dpRotLi(vorm[1]);
vorm[5].dpRotRe(vorm[5]);
vorm[4].dpRotLi(vorm[4]);
}
void keyPressed() {
if (key == 's') {
noLoop();
}
if (key == 'r') {
loop();
}
}