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
 
 
 
 
 
 

spiralen met rechthoeken als achtergond

spiraal 8g 01

                spiraal met "lr" = 0 en "r" = 8                   spiraal met "lr" = 1 en "r" = 8

                                               De draaipunten staan in het (0,0) punt

 

gouden spiraal.  "Spiraal_8gr_gk"              terug naar de inleiding

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) "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 alleen de grootste boog zichtbaar.

5) en 6) x, y positie,  7) hoek,  8) kleur van de lijnen van de spiraal

 
 

class Spiraal_8gr_gk extends Vormen {
 
  Spiraal_8gr_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 a = nphi-nphi/phi;    
    float b = n-n/phi; float c = a-a/phi; float d = b-b/phi; float e = c-c/phi; 
    float f = d-d/phi; float 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);      
    popMatrix(); 
    strokeWeight(1); 
  }   
  }


 
 

Animatie met 4 spiralen, de schets maakt gebruik van de class "Spiraal_8gr_gk" en de superclass "Vormen"

Bekijk de roterende spiralen

 
 

Vormen vorm0;   
Vormen vorm1;    
Vormen vorm2;  
Vormen vorm3; 
 
void setup() {    
size(780, 560);   
  float x = width/2;    
  float y = height/2;    
  float n = height/4; 
  vorm0 = new Spiraal_8gr_gk(n, 2, 1, 8, x+n, y,  90, color(255,0,0)); 
  vorm1 = new Spiraal_8gr_gk(n, 2, 0, 8, x-n, y, -90, color(255,0,0)); 
  vorm2 = new Spiraal_8gr_gk(n, 2, 1, 8, x-n, y, 180, color(255,0,0)); 
  vorm3 = new Spiraal_8gr_gk(n, 2, 0, 8, x+n, y,-180, color(255,0,0)); 
}    
void draw() {    
  background(#E6FBFF);    
  //assenstelsel    
  stroke(255, 0, 0);    
  line (width/2, 0, width/2, height);    
  line(0, height/2, width, height/2);    
  stroke(0); 
  
  vorm0.display();    
  vorm1.display();    
  vorm2.display();  
  vorm3.display(); 
   
  vorm0.dpRotLi(vorm0);   
  vorm1.dpRotRe(vorm1);   
  vorm2.dpRotLi(vorm2);   
  vorm3.dpRotRe(vorm3); 
}   
 
void keyPressed() {      
  if (key == 's') {     
    noLoop(); 
  }    
 
  if (key == 'r') {        
    loop(); 
  } 
}