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!!

De schets maakt ook gebruik van een object van de class "Ruitjes" met een constructor met de vier argumeten  nx, ny, x en y

 

 

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      
}