De eerste 2 argumenten van de constructor zijn de hoogte en de breedte van de rechthoek
Zie ook de voorbeelden met vierkanten Zie het voorbeeld zes rechthoeken rond pijl
Je kan rechthoeken met andere zijden maken door in de constructor de eerste twee argumenten te vervangen door:
float a = sqrt(2*n*n); | basis rechthoekige driehoek | Drieh_an | ||||
float b = sqrt(5*n*n/4); | schuine zijde gelijkbenige driehoek | Drieh_nh | ||||
float hn = sqrt(3*n*n/4); | hoogte gelijkzijdige driehoek | Drieh_nh | ||||
float hn = sqrt(3*n*n/4); | hoogte trapezium | Trap_2nn | ||||
float hna = sqrt(a*a-n*n/4); | hoogte gelijkbenige driehoek | Drieh_na | ||||
float nphi = ((1+sqrt(5))/2)*n; | lijn van hoek naar hoek in de vijfhoek | Vhoek_n5 |
Opm: Alle gelijkzijdige en gelijkbenige driehoeken worden samengesteld met de class: "Drieh_nh"
Met het tweede argument in de constructor = nphi, dan is de rechthoek een gouden rechthoek.
zie het voorbeeld "roterende gouden driehoeken en rechthoeken"
Eerste argument van de constructor is de breedte, tweede argument is de hoogte van de rechthoek.
class Rechthoek extends Vormen {
Rechthoek(float n_, float h1_, int d_, float x_, float y_, float hoek_, color c1_) {
super();
n = n_;
h1 = h1_;
x = x_;
y = y_;
hoek = hoek_;
c1 = c1_;
d = d_;
}
void display() {
fill(c1);
// noStroke();
pushMatrix();
translate(x, y);
rotate(radians(hoek));
beginShape();
if (d == 1) {vertex(0, 0); vertex(0, -h1); vertex(n, -h1); vertex(n, 0); }
if (d == 2) {vertex(0, h1/2); vertex(0, -h1/2); vertex(n, -h1/2);vertex(n, h1/2);}
if (d == 3) {vertex(0, h1); vertex(0, 0); vertex(n, 0); vertex(n, h1); }
if (d == 4) {vertex(-n/2, h1);vertex(-n/2, 0); vertex(n/2, 0); vertex(n/2, h1);}
if (d == 5) {vertex(-n, h1); vertex(-n, 0); vertex(0, 0); vertex(0, h1);}
if (d == 6) {vertex(-n, h1/2);vertex(-n, -h1/2);vertex(0, -h1/2);vertex(0, h1/2);}
if (d == 7) {vertex(-n, 0); vertex(-n, -h1); vertex(0, -h1); vertex(0, 0);}
if (d == 8) {vertex(-n/2, 0); vertex(-n/2, -h1);vertex(n/2, -h1);vertex(n/2, 0);}
if (d == 0) {vertex(-n/2, h1/2);vertex(-n/2, -h1/2);vertex(n/2, -h1/2);vertex(n/2, h1/2);}
endShape(CLOSE);
popMatrix();
}
}
vier roterende rechthoeken
Bekijk de roterende rechthoeken De schets maakt gebruik van de class "Rechthoek" en de superclass "Vormen"
Vormen vorm0;
Vormen vorm1;
Vormen vorm2;
Vormen vorm3;
Vormen vorm4;
void setup() {
size(780,560);
float x = width/2;
float y = height/2;
float n = height/5;
float h = 2*n;
vorm0 = new Rechthoek(n,n, 0, x, y, 0, color(0,255,0, 100));
vorm1 = new Rechthoek(n,h, 7, x-n/2, y-n/2, 0, color(255,255,0,100));
vorm2 = new Rechthoek(n,h, 1, x+n/2, y-n/2, 0, color(255,0,0,100));
vorm3 = new Rechthoek(n,h, 5, x-n/2, y+n/2, 0, color(0,0,255,100));
vorm4 = new Rechthoek(n,h, 3, x+n/2, y+n/2, 0, color(122,200,100,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);
vorm0.display();
vorm1.display();
vorm2.display();
vorm3.display();
vorm4.display();
vorm1.dpRotLi(vorm1);
vorm2.dpRotRe(vorm2);
vorm3.dpRotRe(vorm3);
vorm4.dpRotLi(vorm4);
}
void keyPressed() {
if (key == 's') {
noLoop();
}
if (key == 'r') {
loop();
}
}