gouden spiraal. "Spiraal_8gd_kg" terug naar de inleiding
Spiraal_8gd_kg is een spiraal van 8 bogen van 108 graden samengesteld met met 8 gnomons die zijn ontstaan door de 9 gouden driehoeken
"8gd" dwz 8 gouden spiralen afgeleid van 9 gouden driehoeken, "kg" = van klein naar groot, zie argument 4
De argumenten van de constructor
1) "n" = de straal van de negende boog (boog van 108 graden in gnomon "n"), 2) "sw" = dikte van de lijnen, 3) "lr" = 0 spiraal naar links, "lr" = 1 spiraal naar rechts
4) "r" = aantal bogen (max 8), van klein naar groot, dus voor "r" = 1 is alleen de kleinste boog zichtbaar.
5) en 6) x, y positie van de li spiraal is het punt linksonder, van de rechter spiraal is dit het punt rechtsonder dit zijn ook de draaipunten,
7) hoek, 8) kleur van de lijnen van de spiraal
class Spiraal_8gd_kg extends Vormen {
Spiraal_8gd_kg(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);
noFill();
strokeWeight(sw);
pushMatrix();
translate(x, y);
rotate(radians(hoek));
float phi= (1+sqrt(5))/2;
float nphi = n*phi;
float a = nphi-nphi/phi;
float ax1 = a*cos(radians(72)); float ay1 = a*sin(radians(72));
float ax2 = a*cos(radians(36)); float ay2 = a*sin(radians(36.));
float b = n-n/phi; float c = a-a/phi;
float bx1 = (a-c)*cos(radians(36)); float by1 = (a-c)*sin(radians(36));
float d = b-b/phi; float f = d-d/phi;
float cx1 = ax2-c; float dx1 = ax2-d;
float ex1 = (n/2-d)-f*cos(radians(72));float ey1 = ay2-f*sin(radians(72));
float e = c-c/phi; float fx1 = n/2-(d+e/2);
float fy1 = ay2 - f*sin(radians(36));
float g = e-e/phi; float h = f-f/phi;
float gx1 = fx1 + h*cos(radians(36)); float gy1 = fy1 + h*sin(radians(36));
//Gulden Gnomon (36,36,108) ontstaan door de gulden driehoek (36,72,72)
if (r==8 && lr==0)
arc(-ax1,-ay1, ax2*4 ,ax2*4, radians(144), radians(252));
if (r==8 && lr==1)
arc(ax1,-ay1, ax2*4,ax2*4, radians(288), radians(396));
if ((r==7 || r==8) && lr==0)
arc(-ax2,-ay2, a*2 ,a*2,radians(36), radians(144));
if (( r==7 || r==8) && lr==1)
arc(ax2,-ay2, a*2,a*2, radians(36) , radians(144));
if ((r==6 || r==7 || r==8) && lr==0)
arc(-bx1,-by1, b*2 ,b*2, radians(288), radians(396));
if ((r==6 || r==7 || r==8) && lr==1)
arc(bx1,-by1, b*2,b*2, radians(144), radians(252));
if ((r==5 || r==6 || r==7 || r==8) && lr==0)
arc(-cx1,-ay2, c*2 ,c*2, radians(180), radians(288));
if ((r==5 || r==6 || r==7 || r==8) && lr==1)
arc(cx1,-ay2, c*2 ,c*2, radians(252), radians(360));
if ((r == 4 || r==5 || r==6 || r==7 || r==8) && lr==0)
arc(-dx1,-ay2, d*2 ,d*2, radians(72), radians(180));
if ((r == 4 ||r==5 || r==6 || r==7 || r==8) && lr==1)
arc(dx1,-ay2, d*2,d*2, radians(0), radians(108));
if ((r == 3 || r == 4 || r==5 || r==6 || r==7 || r==8) && lr==0)
arc(-ex1,-ey1, e*2 ,e*2, radians(324), radians(432));
if ((r == 3 || r == 4 || r==5 ||r==6 || r==7 || r==8) && lr==1)
arc(ex1,-ey1, e*2,e*2, radians(108), radians(216));
if ((r == 2 || r == 3 || r == 4 || r==5 ||r==6 ||r==7 || r==8) && lr==0)
arc(-fx1,-fy1, f*2 ,f*2, radians(216), radians(324));
if ((r == 2 || r == 3 || r == 4 || r==5 ||r==6 ||r==7 || r==8) && lr==1)
arc(fx1,-fy1, f*2,f*2, radians(216), radians(324));
if ((r == 1 || r == 2 || r == 3 || r == 4 || r==5 ||r==6 ||r==7 || r==8) && lr==0)
arc(-gx1,-gy1, g*2 ,g*2, radians(108), radians(216));
if ((r == 1 ||r == 2 || r == 3 || r == 4 || r==5 ||r==6 ||r==7 || r==8) && lr==1)
arc(gx1,-gy1, g*2,g*2, radians(324), radians(432));
popMatrix();
strokeWeight(1);
}
}