cirkelvorm header

 

 

 

 

 

cirkelvorm constructor 1

 

 

 

 

 

constructor 1,  zwarte achtergrond, ellipseGeel: draaisnelheid -1, rotatiemode 3

constructor 1,  zwarte achtergrond, ellipseGeel: draaisnelheid -1, rotatiemode 3

 

 

 

 

 

 

cirkelvorm constructor 2

 

 

 

 

 

 

Cirkelvorm constructor 3

 

 

 

 cirkelvorm zwart

 

 

 

 

cirkelvorm constructor 4

 

 

 

 

 

Z rotatie rode rechthoek en verlengde vormen in constructor 3

 

 

 

 

Z rotatie en verlengde vormen in constructor 3

Z rotatie rode rechthoek en verlengde vormen in constructor 5

 

 

CirkelVorm met 5 constructors in de schets        naar de schets op open processing

 

 
 

 
CirkelVorm rechthoek; 
CirkelVorm rechthoek2;  
CirkelVorm ellipseGeel;  
CirkelVorm ellipseBlauw; 
void setup() {  
 //size(960, 540, P3D); 
 fullScreen(P3D); 

frameCount = 0;
 //Argumenten van de constructor:
 
//1) vormlengte, 2) vormbreedte, 3) cirkeldiameter, 4) start draaihoek, 5) draaisnelheid, 6) positie cirkel x as, 
 //7) rotatiemode, 8) aantal vormen, 9) kleur.
//In rotatiemode: 0 = geen rotatie,  1 = rotate,  2 = rotateX,  3 = rotateY,  4 = rotateZ
 

//Met negatieve draaisnelheid is de draairichting linksom.
 
 rechthoek = new CirkelVorm(width/3, height/96, width/6.4, 0, -1, width/2, 1, 20, color(255, 0, 0, 150));  
 rechthoek2 = new CirkelVorm(width/8, height/96, width/6.4, 90, 1, width/2, 3, 20, color(255, 0, 0, 150));  
 ellipseGeel = new CirkelVorm(width/9.6, height/5.4, width/15, 0, 0, width/2, 1, 20, color(255, 255, 0,100));  
 ellipseBlauw = new CirkelVorm(width/48, height/27, width/6.4, 0, 0, width/2, 1, 10, color(0, 0, 255)); 
}
 
void setup2() { 
 rechthoek = new CirkelVorm(width/8, height/96, width/6.4, 0, 3, width/4*2, 1, 20, color(255, 0, 0, 100));  
 rechthoek2 = new CirkelVorm(width/8, height/96, width/6.4, 45, 1, width/4*2, 1, 20, color(255, 0, 0, 100));  
 ellipseGeel = new CirkelVorm(width/8, height/25, width/9.6, 40, 0.5, width/4*2, 2, 10, color(0, 255, 0, 100));  
 ellipseBlauw = new CirkelVorm(width/8, height/30, width/4.8, 90, 1, width/4*2, 3, 8, color(0, 0, 255, 100)); 
} 

 void setup3() { 
 rechthoek = new CirkelVorm(width/8, height/40, width/6.4, 0, 3, width/4*2, 1, 20, color(255, 255, 0, 100));  
 rechthoek2 = new CirkelVorm(width/8, height/40, width/6.4, 45, 0.5, width/4*2, 1, 20, color(255, 0, 0, 100));  
 ellipseGeel = new CirkelVorm(width/8, height/25, width/6.4, 0, 1, width/4*2, 1, 10, color(0, 255, 0, 100));  
 ellipseBlauw = new CirkelVorm(width/8, height/30, width/6.4, 90, 1, width/4*2, 1, 20, color(0, 0, 255, 100)); 
}
void setup4() { 
 rechthoek = new CirkelVorm(width/3, height/96, width/6.4, 0, -1, width/2, 1, 20, color(255, 0, 0, 150));  
 rechthoek2 = new CirkelVorm(width/8, height/96, width/6.4, 90, 1, width/2, 3, 20, color(255, 0, 0, 150));  
 ellipseGeel = new CirkelVorm(width/10, height/20, width/20, 0, 0, width/2, 1, 20, color(255, 0, 200)); 
 ellipseBlauw = new CirkelVorm(width/10, height/15, width/6.4, 0, 0, width/2, 1, 10, color(0, 255, 255));
 
} 

 void setup5() { 
 rechthoek = new CirkelVorm(width/2, height/40, width/6.4, 45, 1, width/4*2, 1, 20, color(255, 255, 0, 100));  
 rechthoek2 = new CirkelVorm(width/2, height/40, width/6.4, 45, 0.5, width/4*2, 4, 20, color(255, 0, 0, 100));  
 ellipseGeel = new CirkelVorm(width/2, height/25, width/6.4, 90, 1, width/4*2, 4, 10, color(0, 255, 0, 100));  
 ellipseBlauw = new CirkelVorm(width/2, height/30, width/6.4, 90, 1, width/4*2, 4, 20, color(0, 0, 255, 100)); 
}
 void draw() {  
 background(133,191,240);
if (frameCount == 500) setup2(); 
 if (frameCount == 1000) setup3(); 
 if (frameCount == 1500) setup4();
 
if (frameCount ==  2000) setup5(); 
 if (frameCount ==  2500) setup(); 

pushMatrix();  
 rechthoek.rechthoek();  
 popMatrix();
 
 pushMatrix();  
 rechthoek2.rechthoek();  
 popMatrix();
 
 pushMatrix();  
 ellipseGeel.ellips();  
 popMatrix();
 
 pushMatrix();  
 ellipseBlauw.ellips();  
 popMatrix();
 
}


De class CirkelVorm met 4 rotatie modi

 

//CirkelVorm is een class waarin de vormen rect en ellipse in een cirkel worden gerangschikt  
//een extra methode en constructor tbv een niet roterende rechthoek toegevoegd  
class CirkelVorm {  
 float x; float y; float b; float l; 
 float diameter; float hoek; float snelh; 
 float xpos; 
 int rotatiemode; 
 int aantal; 
 float teller; 
 color c;
//Argumenten van de constructor:  
 //vormlengte, vormbreedte, cirkeldiameter, start draaihoek, draaisnelheid, xpos is positie cirkel op de x as  
 //rotatiemode, aantal vormen, kleur.
CirkelVorm(float l_, float b_, float d_, float hoek_, float snelh_, float xpos_, int rmod_, int aantal_, color c_) {  
 b = b_;  
 l = l_;  
 diameter = d_;  
 hoek = hoek_; 
 xpos = xpos_; 
 snelh = snelh_; 
 rotatiemode = rmod_;  
 aantal = aantal_;  
 c = c_; 
 } 
 
 //Constructor voor de niet roterende rechthoek  
 CirkelVorm(float x_, float y_, float l_, float b_, color c_) {  
 x = x_;  
 y = y_;  
 l = l_;  
 b = b_; 
 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 = height/2 + 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 = height/2 + 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(); 
 } 
 }
void rechthoekNietRoterend() {  
 rectMode(CENTER);  
 fill(c);  
 rect(x, y, l, b); 
 } 
}