De class CirkelVorm met 4 rotatie modi.

 

//CirkelVorm is een class waarin de vormen rect en ellipse in een cirkel worden gerangschikt    
class CirkelVorm {    
 float xpos; float ypos; float b; float l;   
 float diameter; float hoek; float snelh;   
 int rotatiemode; int aantal;   
 float teller;   
 color c;   
  
//Argumenten van de constructor:    
//1) x positie, 2) y positie, 3) vormlengte, 4) vormbreedte, 5) cirkelstraal,  
//6) start draaihoek, 7) draaisnelheid, 8) rotatiemode, 9) aantal vormen, 10)  kleur.   
   
// rotatiemode: 1) assenstelsel, 2) x as, 3) y as, 4) Z as, dan moet de start draaihoek > 0 zijn   
//                 1           2         3        4        5         6           7          8         9           10 
CirkelVorm(float xpos_,float ypos_,float l_,float b_,float d_,float hoek_,float snelh_,int rmod_,int aantal_,color c_) {    
   
 xpos = xpos_; ypos = ypos_; 
 b = b_;  l = l_;    
 diameter = d_;    
 hoek = hoek_;   
  
 snelh = snelh_;   
 rotatiemode = rmod_;    
 aantal = aantal_;    
 c = c_;   
 }   
   
 void rechthoek() {   
 teller = teller + snelh;    
 for (int i = 0; i < 360; i+=360/aantal) {    
 float x = xpos + sin(radians(i))* diameter;    
 float y = ypos + cos(radians(i))* diameter;    
 pushMatrix();    
 translate(x, y);    
 if (rotatiemode == 1) rotate(radians(-i+teller+hoek));    
 if (rotatiemode == 2) rotateX(radians(-i+teller+hoek));    
 if (rotatiemode == 3) rotateY(radians(-i+teller+hoek));  
 if (rotatiemode == 4)  {  
    rotateX(radians(hoek));  
    rotateZ(radians(-i+teller+hoek));  
}   
 fill(c);    
 rectMode(CENTER);    
 rect(0, 0, l, b, 25);    
 popMatrix();   
 }   
 }  
void ellips() {   
 teller = teller + snelh;    
 for (int i = 0; i < 360; i+=360/aantal) {    
 float x = xpos + sin(radians(i))* diameter;    
 float y = ypos + cos(radians(i))* diameter;    
 pushMatrix();    
 translate(x, y);    
 if (rotatiemode == 1) rotate(radians(-i+teller+hoek));    
 if (rotatiemode == 2) rotateX(radians(-i+teller+hoek));    
 if (rotatiemode == 3) rotateY(radians(-i+teller+hoek));  
 if (rotatiemode == 4) {  
   rotateX(radians(hoek));  
   rotateZ(radians(-i+teller+hoek));  
}  
 fill(c);  
 ellipse(0, 0, l, b);    
 popMatrix();   
 }   
 }  
}