gouden spiraal. "Spiraal_8gr_gk in p5.js" terug naar de inleiding
spiralen met rechthoeken als achtergond
spiraal met "lr" = 0 en "r" = 8 spiraal met "lr" = 1 en "r" = 8
De draaipunten staan in het (0,0) punt
Spiraal_8gr_gk is een spiraal van 8 bogen van 90 graden samengesteld met met 9 gouden rechthoeken
"gk" staat voor van groot naar klein , zie argument 4
De argumenten van de constructor
1) "n" = de straal van de eerste boog (boog van 90 graden in vierkant "n"), 2) "lr" = 0 spiraal naar links, "lr" = 1 spiraal naar rechts
3) "r" = aantal bogen (max 8), van groot naar klein, dus voor "r" = 1 is alleen de grootste boog zichtbaar.
4) en 5) x, y positie, 6) hoek, 7) "sw" = lijndikte, 8) lijnkleur
class Spiraal_8gr_gk extends Vormen {
constructor(n, lr, r, x, y, hoek, sw, c) {
super(x,y,hoek);
this.n = n; this.lr = lr; this.r = r;
this.x = x; this.y = y;
this.hoek = hoek; this.sw = sw; this.c = c; this.r = r;
}
display() {
stroke(this.c);
noFill();
let lr = this.lr; let r = this.r; let n = this.n;
strokeWeight(this.sw);
push();
translate(this.x, this.y);
rotate(radians(this.hoek));
const phi= (1+sqrt(5))/2;
const nphi = n*phi;
const a = nphi-nphi/phi;
const b = n-n/phi; const c = a-a/phi; const d = b-b/phi; const e = c-c/phi;
const f = d-d/phi; const g = e-e/phi;
if ((r==1 || r==2 || r==3 || r==4 || r==5 || r==6 || r==7 || r==8) && lr==0)
arc(-n,0, n*2 ,n*2, PI+HALF_PI, PI+PI);
if ((r==1 || r==2 || r==3 || r==4 || r==5 || r==6 || r==7 || r==8 ) && lr==1)
arc(n,0, n*2,n*2, PI, PI+HALF_PI);
if ((r==2 || r==3 || r==4 || r==5 || r==6 || r==7 || r==8) && lr==0)
arc(-n,-b, a*2 ,a*2,PI, PI+HALF_PI);
if ((r==2 || r==3 || r==4 || r==5 || r==6 || r==7 || r==8) && lr==1)
arc(n,-b, a*2,a*2, PI+HALF_PI , PI+PI);
if ((r==3 || r==4 || r==5 || r==6 || r==7 || r==8) && lr==0)
arc(-(n+c),-b, b*2 ,b*2, HALF_PI, PI);
if ((r==3 || r==4 || r==5 || r==6 || r==7 || r==8) && lr==1)
arc(n+c,-b, b*2,b*2, 0, HALF_PI );
if ((r==4 || r==5 || r==6 || r==7 || r==8) && lr==0)
arc(-(n+c),-c, c*2 ,c*2, 0, HALF_PI);
if ((r==4 || r==5 || r==6 || r==7 || r==8) && lr==1)
arc(n+c,-c, c*2,c*2, HALF_PI, PI );
if ((r==5 || r==6 || r==7 || r==8) && lr==0)
arc(-(n+d),-c, d*2 ,d*2, PI+HALF_PI, PI+PI);
if ((r==5 || r==6 || r==7 || r==8) && lr==1)
arc(n+d,-c, d*2,d*2,PI, PI+HALF_PI );
if ((r==6 || r==7 || r==8) && lr==0)
arc(-(n+d),-(c+f), e*2 ,e*2, PI, PI+HALF_PI);
if ((r==6 || r==7 || r==8) && lr==1)
arc(n+d,-(c+f), e*2,e*2, PI+HALF_PI, PI+PI );
if ((r==7 || r==8) && lr==0)
arc(-(n+d+g),-(c+f), f*2 ,f*2, HALF_PI, PI);
if ((r==7 || r==8) && lr==1)
arc(n+d+g,-(c+f), f*2,f*2, 0, HALF_PI);
if ((r==8) && lr==0)
arc(-(n+d+g),-(c+g), g*2 ,g*2, 0, HALF_PI);
if ((r==8) && lr==1)
arc(n+d+g,-(c+g), g*2,g*2, HALF_PI, PI);
pop();
strokeWeight(1);
}
}