drie poppen

Eenvoudig voorbeeld met roterende en bewegende poppetjes                             terug naar de inleiding
 

het poppetje is 9 vakjes hoog met h = n/9 is het poppetje 1 vakje hoog Het middelste poppetje, pop2 draait om zijn as en is 2 vakjes hoog

pop1 beweegt van links naar rechts en is 4 vakjes hoog. Pop3 is een vakje hoog

Zie voor het ruitjespapier de class  "Ruitjes".
 
 

Pop pop1;  
Pop pop2;  
Pop pop3;  
Ruitjes ruit;  
float x;  
float y;  
float n;  
float h; 
float i;  
  
void setup() {   
  size(960, 540);   
  //  fullScreen();  
  x = width/2;  
  y = height/2;  
  n = height/10;  
  h = n/9; 
  ruit = new Ruitjes(n, x, y);  
  
  pop1 = new Pop(x-5*n, y, 4*h);  
  pop2 = new Pop(0,     0, 2*h);  
  pop3 = new Pop(x+5*n, y,   h);  
}   
  
void draw() {   
  background(#E6FBFF);    
  ruit.display();  
  pop1.display();  
  pop1.xLiRe();    
   
  pushMatrix();  
  translate(x, y);  
  rotate(radians(i));  
  i = i + 1; 
  if (i > 360) i = 1; 
  pop2.display();  

  popMatrix();
 
  pop3.display();  
}
 

 

de class Pop

 

class Pop {  
  float x;  
  float y;  
  float n;  
 
  float xsnelhLi = 1;  
  
  Pop(float x_, float y_, float n_) {  
    x = x_;  
    y = y_;  
    n = n_;  
  }  
  
  void display()   
  {   
 strokeWeight(2);  
 fill(255, 255, 0);   
   
 ellipse(x,  y-4*n, 2*n, 2*n);   //hoofd      
 rect(x-n,   y-3*n, 2*n, 3*n);   //lichaam    
 rect(x-2*n, y-3*n, n,   3*n);   //arm li    
 rect(x+n,   y-3*n, n,   3*n);   //arm re   
 rect(x-n,   y+2*n, n/2, 2*n);   //li been    
 rect(x+n/2, y+2*n, n/2, 2*n);   //Re been   
   
 quad(x-2*n, y+2*n, x-n, y, x+n, y, x+2*n, y+2*n); //jurk   
  }  
  
    void xLiRe() {      
    x = x + xsnelhLi;      
    if ((x > width) || (x < 0)) {      
      xsnelhLi = xsnelhLi * -1;    
    }    
  }  
}