Schets waarin het middelste poppetje roteert.                  terug naar de inleiding
 
Het is niet mogelijk om een vorm te roteren. Het assenstelsel kan wel roteren. (zie regel 21 t/m 27 voor de code)
Het groene poppetje roteert in het (0,0) punt om zijn as. Het (0,0) punt bevindt zich linksboven.

Met translate(x+2*nx, y) wordt dit (0,0) punt verplaatst naar het punt (x+2*n, y)

Dankzij pushMatrix() en popMatrix() wordt het (0,0) punt alleen verplaatst voor het groene poppetje,
anders zouden de andere poppetjes ook verplaatsen en dat is niet de bedoeling.
De teller i zorgt er voor dan het poppetje in stappen van 1 graad roteerd.
Als het poppetje rond is (360 graden gedraaid) begint de teller weer bij 1 (zie regel 25)
 
Binnen pushMatrix() en popMatrix() moet je na translate altijd eerst de rotate functie aanroepen
en daarna de functie met de te roterende vorm!!

 

 

Ruitjes ruitjespap; 
float x;    
float y;    
float nx; 
float ny; 
float i; 
void setup() {  
  size(960, 540); 
   x = width/2;    
   y = height/2;    
   nx = height/20; //nx is de lengte van het vakje 
   ny = height/20; //ny is de hoogte van het vakje 
   ruitjespap = new Ruitjes(nx, ny, x, y); 
}  
void draw() {  
  background(#E6FBFF);   
  ruitjespap.display(); 
  vrouw(x-6*nx, y, nx,    ny/2,    color(255,0,   0,  100));   
   
  pushMatrix();  
  translate(x+2*nx, y); 
  rotate(radians(i));   
  i = i + 1;
  if (i > 360) i = 0;
// het groene poppetje staat links boven in het (0,0) punt
  vrouw(0,      0, nx,     ny,     color(0,  255, 0,  100));  
  popMatrix(); 
    
  vrouw(x+9*nx, y, nx*0.5, ny*1.5, color(0,  0,   255,100));    
}  
  
void vrouw(float x, float y, float nx, float ny, color c)  
{   
 fill(255, 255, 0,100);   
 strokeWeight(2);  
 ellipse(x,   y-4*ny, 2*nx, 2*ny);   //hoofd      
 rect(x-nx,   y-3*ny, 2*nx, 3*ny);   //lichaam    
 rect(x-2*nx, y-3*ny, nx,   3*ny);   //arm li    
 rect(x+nx,   y-3*ny, nx,   3*ny);   //arm re   
 rect(x-nx,   y+2*ny, nx/2, 2*ny);   //li been    
 rect(x+nx/2, y+2*ny, nx/2, 2*ny);   //Re been   
 fill(c);  //quad (is het jurkje) krijgt de kleur 
 quad(x-2*nx, y+2*ny, x-nx, y, x+nx, y, x+2*nx, y+2*ny); //jurk      
}