li en re spiraal met de
driehoeken als achtergrond
 
 
 
 
 
 
 
 
 
 
r = 3
 

 
 
 
 
 
 

 

 

gouden spiraal.  "Spiraal_8gdt_gk"              terug naar de inleiding

Spiraal_8gdt_gk is een spiraal van 8 bogen, van ieder 108 graden, samengesteld  met 8 gnomons  die  zijn ontstaan door 9 gouden driehoeken.

"8gdt" dwz een gouden spiraal  samengesteld uit 8 gnomon driehoeken. De top van de grootste driehoek is het draaipunt van de spiraal.
"gk"    dwz van groot naar klein, zie argument 4
 

De top en tevens draaipunt van de spiraal staat in het (0,0) punt

De argumenten van de constructor

1) "n" = de straal  van de eerste 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 groot naar klein, dus voor "r" = 1 is de grootste boog zichtbaar.

5) en 6) x, y positie van de het beginpunt van de spiraal in het punt (0,0), dit is ook het draaipunt,  7) hoek,  8) kleur van de lijnen van de spiraal

 

class Spiraal_8gdt_gk extends Vormen { 
  Spiraal_8gdt_gk(float n_, int 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 h1  = nphi*sin(radians(72)); float a = nphi-nphi/phi;     
    float ax1 = (nphi-a)*cos(radians(72)); float ay1 = (nphi-a)*sin(radians(72));   
    float b = n-n/phi; float ay2 = ay1+b*sin(radians(36));     
    float c = a-a/phi; float bx1 = c*cos(radians(36)); 
    float by1 = ay2+c*sin(radians(36));        
    float d = b-b/phi; float e = c-c/phi; float f = d-d/phi; float h = f-f/phi; 
    float ex1 = c-(e-f*cos(radians(72))); float ey1 = ay2+f*sin(radians(72));      
    float fx1 = (c-e)+f*cos(radians(36)); float fy1 = ay2+f*sin(radians(36));   
    float gx1 = (c-e)+(f-h)*cos(radians(36)); float gy1 = ay2+(f-h)*sin(radians(36));  
    float g = e-e/phi; 
    //Gulden Gnomon (36,36,108) ontstaan door driehoek n (36,72,72) 
   if ((r==1 || r==2 || r==3 || r==4 || r==5 || r==6 || r==7 || r==8) && lr==0)  
      arc(ax1,ay1, n*2 ,n*2, radians(144), radians(252));          
   if ((r==1 || r==2 || r==3 || r==4 || r==5 || r==6 || r==7 || r==8 ) && lr==1)  
      arc(-ax1,ay1, n*2,n*2, radians(288),  radians(396));           
   if ((r==2 || r==3 || r==4 || r==5 || r==6 || r==7 || r==8) && lr==0)  
      arc(0, ay2, a*2 ,a*2,radians(36), radians(144));              
   if ((r==2 || r==3 || r==4 || r==5 || r==6 || r==7 || r==8) && lr==1)  
      arc(0, ay2, a*2,a*2, radians(36) , radians(144));              
   if ((r==3 || r==4 || r==5 || r==6 || r==7 || r==8) && lr==0)  
     arc(bx1,by1, b*2 ,b*2, radians(288), radians(396));           
   if ((r==3 || r==4 || r==5 || r==6 || r==7 || r==8) && lr==1)  
      arc(-bx1,by1, b*2,b*2, radians(144), radians(252));      
   if ((r==4 || r==5 || r==6 || r==7 || r==8) && lr==0)  
      arc(c, ay2, c*2 ,c*2, radians(180), radians(288));           
   if ((r==4 || r==5 || r==6 || r==7 || r==8) && lr==1)  
      arc(-c,ay2, c*2 ,c*2, radians(252), radians(360));             
   if ((r==5 || r==6 || r==7 || r==8) && lr==0)  
       arc(c-e,ay2, d*2 ,d*2, radians(72), radians(180));          
   if ((r==5 || r==6 || r==7 || r==8) && lr==1)  
      arc(-(c-e),ay2, d*2,d*2, radians(0), radians(108));                    
   if ((r==6 || r==7 || r==8) && lr==0)  
      arc(ex1, ey1, e*2 ,e*2, radians(324), radians(432));       
   if ((r==6 || r==7 || r==8) && lr==1)  
      arc(-ex1,ey1, e*2,e*2, radians(108), radians(216));                   
   if ((r==7 || r==8) && lr==0)  
        arc(fx1,fy1, f*2 ,f*2, radians(216), radians(324));     
   if ((r==7 || r==8) && lr==1)  
       arc(-fx1,fy1, f*2,f*2, radians(216), radians(324));  
   if ((r==8) && lr==0)  
      arc(gx1,gy1, g*2 ,g*2, radians(108), radians(216));           
   if ((r==8) && lr==1)  
      arc(-gx1,gy1, g*2,g*2, radians(324), radians(432));       
    popMatrix();  
    strokeWeight(1);  
  }    
  }