ruit
de 9 ruiten in hun draaipunten
 

ruiten in dp 1 en 5, -45 gr rotatie
ruiten in dp 2 en 6, 90 gr rotatie
 
 
 
ruiten in dp 4 en 8 rotatie 90 graden
ruiten in dp 7 en 3 rotatie -45 graden
 
 
 
 
 zie de schets voor de code
 
 
 
 
 
 
 
 
 
 
 
 
 
 header ruit
gelijkzijdig parallellogram of ruit:  "Ruit"                                terug naar de inleiding
                                                                                     voorbeelden
de zijden:                            n                                                ruiten en trapeziums           
de lange diagonaal:      2* hn = 2*sqrt(3*n*n/4);                   ruiten en gelijkzijdige driehoeken             
de korte diagonaal:             n                                                 ruiten en boxen
 
 

class Ruit extends Vormen { 
Ruit(float n_, int d_, float x_, float y_, float hoek_, color c1_) {  
 super();  
 n = n_;   
 x = x_;   
 y = y_;   
 hoek = hoek_;  
 c1 = c1_;  
 d = d_;  
 } 
void display() {  
 fill(c1);  
 // noStroke();  
 pushMatrix();  
 translate(x, y);  
 rotate(radians(hoek));   
 beginShape();  
 float hn = sqrt(3*n*n/4); 
 if (d == 0) {vertex(0, hn); vertex(-n/2, 0); vertex(0, -hn); vertex(n/2, 0);}    
 if (d == 1) {vertex(0, 0); vertex(-n/2, -hn); vertex(0, -2*hn); vertex(n/2,-hn);}   
 if (d == 2) {vertex(n/4, hn/2);vertex(-n/4, -hn/2); vertex(n/4, -3*hn/2); vertex(3*n/4, -hn/2);}    
 if (d == 3) {vertex(n/2, hn); vertex(0, 0); vertex(n/2, -hn); vertex(n, 0);}  
 if (d == 4) {vertex(n/4, 3*hn/2); vertex(-n/4, hn/2); vertex(n/4, -hn/2); vertex(3*n/4, hn/2);}   
 if (d == 5) {vertex(0, 2*hn); vertex(-n/2, hn); vertex(0, 0); vertex(n/2, hn);}   
 if (d == 6) {vertex(-n/4, 3*hn/2); vertex(-3*n/4, hn/2); vertex(-n/4, -hn/2);vertex(n/4, hn/2);}    
 if (d == 7) {vertex(-n/2, hn); vertex(-n, 0); vertex(-n/2, -hn); vertex(0, 0);}    
 if (d == 8) {vertex(-n/4, hn/2); vertex(-3*n/4, -hn/2); vertex(-n/4, -3*hn/2); vertex(n/4, -hn/2);}  
 endShape(CLOSE);  
 popMatrix();  
 }  
}
 
Schets van de in hun draaipunt roterende ruiten met in het midden een vierkant met zijden a . De schets maakt ook gebruik van class  "Rechthoek"
 
 
 

Vormen[] vorm = new Vormen[9];  
void setup() {  
  size(960, 540);  
  float x = width/2;  
  float y = height/2;  
  float n = height/6;    
  float a = sqrt(2*n*n);   
  float hn = sqrt(3*n*n/4);  
  int dp = 1; 
  vorm[0] = new Ruit(n, dp, x-3*n/2, y-hn,  30, color(255, 255, 0, 100));  
  vorm[1] = new Ruit(n, dp, x+3*n/2, y-hn, -30, color(255, 0, 0, 100));  
  vorm[2] = new Ruit(n, dp, x+3*n/2, y+hn,-150, color(0, 0, 255, 100));  
  vorm[3] = new Ruit(n, dp, x-3*n/2, y+hn, 150, color(0, 255, 0, 100));  
  vorm[4] = new Ruit(n, dp, x-n, y,   60, color(0, 0, 255, 100));  
  vorm[5] = new Ruit(n, dp, x+n, y,  -60, color(255, 0, 200, 100));  
  vorm[6] = new Ruit(n, dp, x+n, y,  240, color(200, 0, 50, 100));  
  vorm[7] = new Ruit(n, dp, x-n, y, -240, color(255, 100, 0, 100));  
  vorm[8] = new Rechthoek(a,a, 0, x, y, 45, color(100, 200, 0, 100));  
}  
  
void draw() {  
  background(#E6FBFF); 
  //assenstelsel  
  stroke(255, 0, 0);  
  line (width/2, 0, width/2, height);  
  line(0, height/2, width, height/2);  
  stroke(0);  
  for (int i = 0; i < 9; i++)  
  {  
  vorm[i].display();  
  }  
vorm[0].dpRotRe(vorm[0]);  
vorm[1].dpRotLi(vorm[1]);  
  
vorm[2].dpRotRe(vorm[2]);  
vorm[3].dpRotLi(vorm[3]);  
  
vorm[5].dpRotRe(vorm[5]);  
vorm[4].dpRotLi(vorm[4]);  
  
vorm[7].dpRotRe(vorm[7]);  
vorm[6].dpRotLi(vorm[6]);  
}  
  
void keyPressed() {      
   if (key == 's') {     
    noLoop();     
  }    
      
   if (key == 'r') {        
    loop();     
  }     
 }