
rechthoeken "lr" = 0, "r" = 9 rechthoeken "lr" = 1, "r" = 9
De draaipunten staan in het (0,0) punt
gouden rechthoeken "Rechth_9g_gk" terug naar de inleiding
Met deze class kan je max 9 gouden rechthoeken creeeren, zo ontstaan 8 vierkanten
"Rechth_9g_gk" is een hulpmiddel om spiralen en andere gouden vormen in een schets te positioneren. gk dwz van groot naar klein, zie argument 4
De argumenten van de constructor
1) "n" = lengte van de korte zijde van de rechthoek, 2) "sw" = dikte van de lijnen, 3) "lr" = 0 rechthoeken staan links, "lr" = 1 rechthoeken staan rechts
4) "r" = aantal rechthoeken (max 9), van groot naar klein, dus met "r" = 1 is de grootste rechthoek zichtbaar
5) en 6) x, y positie, 7) hoek, 8) kleur van de lijnen
n, a, b, c, d, e, f, g en h zijn de korte zijden van de 9 gouden rechthoeken en de zijden van de 8 ontstane vierkanten
class Rechth_9g_gk extends Vormen {
Rechth_9g_gk(float n_, float sw_, int lr_, int r_, float x_, float y_, float hoek_, color c1_) {
super();
n = n_; sw = sw_; lr = lr_; x = x_; y = y_;
hoek = hoek_; c1 = c1_; r = r_;
}
void display() {
stroke(c1);
strokeWeight(sw);
noFill();
pushMatrix();
translate(x, y);
rotate(radians(hoek));
float phi= (1+sqrt(5))/2;
float nphi = n*phi;
float a = nphi-nphi/phi, b = n-n/phi , c = a-a/phi, d = b-b/phi;
float e = c-c/phi , f = d-d/phi , g = e-e/phi , h = f-f/phi;
beginShape();
if ((r==1 || r==2 || r==3 || r==4 || r==5 || r==6 || r==7 || r==8 || r==9) && lr==0)
{vertex(0,0); vertex(0,-n); vertex(-nphi,-n); vertex(-nphi,0);}
endShape(CLOSE);
beginShape();
if ((r==1 || r==2 || r==3 || r==4 || r==5 || r==6 || r==7 || r==8 || r==9) && lr==1)
{vertex(0,0); vertex(0,-n); vertex(nphi,-n); vertex(nphi ,0);}
endShape(CLOSE);
beginShape();
if ((r==2 || r==3 || r==4 || r==5 || r==6 || r==7|| r==8 || r==9) && lr==0)
{vertex(-n,0); vertex(-n,-n); vertex(-(n+a),-n); vertex(-(n+a),0);}
endShape(CLOSE);
beginShape();
if ((r==2 || r==3 || r==4 || r==5 || r==6 || r==7|| r==8 || r==9) && lr==1)
{vertex(n,0); vertex(n,-n); vertex(n+a,-n); vertex(n+a,0);}
endShape(CLOSE);
beginShape();
if ((r==3 || r==4 || r==5 || r==6 || r==7|| r==8 || r==9) && lr==0)
{vertex(-n, 0); vertex(-n, -b); vertex(-(n+a), -b); vertex(-(n+a),0);}
endShape(CLOSE);
beginShape();
if ((r==3 || r==4 || r==5 || r==6 || r==7|| r==8 || r==9) && lr==1)
{vertex(n, 0); vertex(n, -b); vertex(n+a, -b); vertex(n+a,0);}
endShape(CLOSE);
beginShape();
if ((r==4 || r==5 || r==6 || r==7|| r==8 || r==9) && lr==0)
{vertex(-n,0);vertex(-n,-b); vertex(-(n+c),-b); vertex(-(n+c),0);}
endShape(CLOSE);
beginShape();
if ((r==4 || r==5 || r==6 || r==7|| r==8 || r==9) && lr==1)
{vertex(n,0);vertex(n,-b); vertex(n+c,-b); vertex(n+c,0);}
endShape(CLOSE);
beginShape();
if ((r == 5 || r==6 || r==7|| r==8 || r==9) && lr==0)
{vertex(-n,-c); vertex(-n,-(c+d)); vertex(-(n+c),-(c+d)); vertex(-(n+c),-c);}
endShape(CLOSE);
beginShape();
if ((r == 5 || r==6 || r==7 || r==8 || r==9) && lr==1)
{vertex(n,-c); vertex(n,-(c+d)); vertex(n+c,-(c+d)); vertex(n+c,-c);}
endShape(CLOSE);
beginShape();
if ((r==6 || r==7|| r==8 || r==9) && lr==0)
{vertex(-(n+c-e), -c);vertex(-(n+c-e), -(d+c));vertex(-(n+c), -(d+c));vertex(-(n+c), -c);}
endShape(CLOSE);
beginShape();
if ((r==6 || r==7|| r==8 || r==9) && lr==1)
{vertex(n+c-e, -c);vertex(n+c-e,-(d+c));vertex(n+c, -(d+c));vertex(n+c,-c);}
endShape(CLOSE);
beginShape();
if ((r==7 || r==8 || r==9) && lr==0)
{vertex(-(n+d),-c);vertex(-(n+d),-(c+f));vertex(-(n+d+e),-(c+f));vertex(-(n+d+e),-c);}
endShape(CLOSE);
beginShape();
if ((r==7|| r==8 || r==9) && lr==1)
{vertex(n+d,-c);vertex(n+d,-(c+f));vertex(n+d+e,-(c+f));vertex(n+d+e,-c);}
endShape(CLOSE);
beginShape();
if ((r==8 || r==9) && lr==0)
{vertex(-(n+d), -c);vertex(-(n+d), -(c+f));vertex(-(n+d+g), -(f+c));vertex(-(n+d+g), -c);}
endShape(CLOSE);
beginShape();
if ((r==8 || r==9) && lr==1)
{vertex(n+d, -c);vertex(n+d, -(c+f));vertex(n+d+g, -(f+c));vertex(n+d+g, -c);}
endShape(CLOSE);
beginShape();
if (r==9 && lr==0)
{vertex(-(n+d),-c);vertex(-(n+d), -(c+f-h));vertex(-(n+d+g),-(c+f-h));vertex(-(n+d+g), -c);}
endShape(CLOSE);
beginShape();
if (r==9 && lr==1)
{vertex(n+d,-c);vertex(n+d,-(c+f-h));vertex(n+d+g,-(c+f-h));vertex(n+d+g, -c);}
endShape(CLOSE);
popMatrix();
strokeWeight(1);
}
}