
gelijkzijdig parallellogram of ruit: "Ruit" terug naar de inleiding
De draaipunten van de schets, onder deze class zijn, met de toetsen 1 t/m 9 te veranderen ga naar de animatie ruit en vierkant
voorbeelden
de zijden: n ruiten en trapeziums
de lange diagonaal: 2* hn = 2*sqrt(3*n*n/4); ruiten en gelijkzijdige driehoeken
de korte diagonaal: n ruiten en boxen
class Ruit extends Vormen {
Ruit(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(0, hn); vertex(-n/2, 0); vertex(0, -hn); vertex(n/2, 0);}
if (d == 1) {vertex(0, 0); vertex(-n/2, -hn); vertex(0, -2*hn); vertex(n/2,-hn);}
if (d == 2) {vertex(n/4, hn/2);vertex(-n/4, -hn/2); vertex(n/4, -3*hn/2); vertex(3*n/4, -hn/2);}
if (d == 3) {vertex(n/2, hn); vertex(0, 0); vertex(n/2, -hn); vertex(n, 0);}
if (d == 4) {vertex(n/4, 3*hn/2); vertex(-n/4, hn/2); vertex(n/4, -hn/2); vertex(3*n/4, hn/2);}
if (d == 5) {vertex(0, 2*hn); vertex(-n/2, hn); vertex(0, 0); vertex(n/2, hn);}
if (d == 6) {vertex(-n/4, 3*hn/2); vertex(-3*n/4, hn/2); vertex(-n/4, -hn/2);vertex(n/4, hn/2);}
if (d == 7) {vertex(-n/2, hn); vertex(-n, 0); vertex(-n/2, -hn); vertex(0, 0);}
if (d == 8) {vertex(-n/4, hn/2); vertex(-3*n/4, -hn/2); vertex(-n/4, -3*hn/2); vertex(n/4, -hn/2);}
endShape(CLOSE);
popMatrix();
}
}
Schets van de in hun draaipunt roterende ruiten met in het midden een vierkant met zijden a .
De schets maakt ook gebruik van de superclass "Vormen" en de class "Rechthoek"
De draaipunten van de schets zijn met de toetsen 1 t/m 9 te veranderen ga naar de animatie ruit en vierkant
Vormen[] vorm = new Vormen[9];
int dp1 = 1;
int dp2 = 1;
void setup() {
size(960, 540);
float x = width/2;
float y = height/2;
float n = height/6;
float a = sqrt(2*n*n);
float hn = sqrt(3*n*n/4);
vorm[0] = new Ruit(n, dp1, x-3*n/2, y-hn, 30, color(255, 255, 0, 100));
vorm[1] = new Ruit(n, dp1, x+3*n/2, y-hn, -30, color(250, 110, 100, 100));
vorm[2] = new Ruit(n, dp1, x+3*n/2, y+hn,-150, color(251, 122, 99, 100));
vorm[3] = new Ruit(n, dp1, x-3*n/2, y+hn, 150, color(0, 255, 0, 100));
vorm[4] = new Ruit(n, dp2, x-n, y, 60, color(30, 247, 220, 100));
vorm[5] = new Ruit(n, dp2, x+n, y, -60, color(247, 201, 30, 100));
vorm[6] = new Ruit(n, dp2, x+n, y, 240, color(178, 247, 50, 100));
vorm[7] = new Ruit(n, dp2, x-n, y, -240, color(30, 176, 247, 100));
vorm[8] = new Rechthoek(a,a, 0, x, y, 45, color(0, 200, 0, 100));
}
void draw() {
background(#E6FBFF);
for (int i = 0; i < 9; i++)
{
vorm[i].display();
}
if (key == 's') {
}
else
{
vorm[0].dpRotRe(vorm[0]);
vorm[1].dpRotLi(vorm[1]);
vorm[2].dpRotRe(vorm[2]);
vorm[3].dpRotLi(vorm[3]);
vorm[5].dpRotRe(vorm[5]);
vorm[4].dpRotLi(vorm[4]);
vorm[7].dpRotRe(vorm[7]);
vorm[6].dpRotLi(vorm[6]);
}
}
void keyPressed() {
if (key == '1') {
dp1 = 1; dp2 = 1;
setup();
}
if (key == '2') {
dp1 = 2;
setup();
}
if (key == '3') {
dp1 = 3;
setup();
}
if (key == '4') {
dp1 = 4;
setup();
}
if (key == '5') {
dp1 = 5;
setup();
}
if (key == '6') {
dp2 = 2;
setup();
}
if (key == '7') {
dp2 = 3;
setup();
}
if (key == '8') {
dp2 = 4;
setup();
}
if (key == '9') {
dp2 = 5;
setup();
}
}