spiraal in 4de kwadrant "lr" = 0, "r" = 8
in derde kwadrant, "lr" = 1, 180 gr rotatie
 
 
"lr" = 0, "r" = 8,  rotatie 45 gr. 
"lr" = 1, "r" = 8 rotatie: -45 gr
 
spiraal met 4 bogen
 
spiralen met 4 bogen , "r" = 4
 
Animatie met 4 spiralen
 
 start situatie
 
 

gouden spiraal.  "Spiraal_8gr_gk in p5.js"              terug naar de inleiding

spiraal 8g 01

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);
 }
 }