n4a dp 013 rot45 45box 0 rotatie 45 gr
box 1 en 3 rotatie -45 gr
 
 
 
n4a0 33
box 0, y-a/2, 45 graden
box 3, 45 graden, box 3. 0 graden
 
 
n4a dp3 0 90 180 270
4 boxen in draaipunt 3
rotatie: 0, 90, 180 en 270 graden
 
box n4na dr2
zie de schets voor de code
 
 
 
box n4na dr1
header box n4a
 
 
Box_n4a                                                                            terug naar de inleiding
 
De box bestaat uit een vierkant n x n met een diepte 4a = 4*sqrt(2*n*n);
 
 

class Box_n4a extends Vormen { 
Box_n4a(float n_, int d_, float x_, float y_, float hoek_, color c1_, color c2_, color c3_) { 
 super(); 
 n = n_;  
 x = x_;  
 y = y_;  
 hoek = hoek_; 
 c1 = c1_; c2 = c2_; c3 = c3_; 
 d = d_; 
 } 
 void display() {  
 // noStroke(); 
 pushMatrix(); 
 translate(x, y); 
 rotate(radians(hoek));  
 beginShape(); 
 //Vierkant 
 fill(c1); 
 if (d == 1) {vertex(0, 0); vertex(0, -n); vertex(n, -n); vertex(n, 0);} 
 if (d == 0) {vertex(-3*n, 3*n);vertex(-3*n, 2*n);vertex(-2*n, 2*n);vertex(-2*n, 3*n);} 
 if (d == 3) {vertex(-5*n, 5*n);vertex(-5*n, 4*n);vertex(-4*n, 4*n);vertex(-4*n, 5*n);} 
 endShape(CLOSE); 
 beginShape(); 
 fill(c2); 
 //parallel rechts 
 if (d == 1) {vertex(0, -n); vertex(4*n, -5*n);vertex(5*n, -5*n);vertex(n, -n);} 
 if (d == 0) {vertex(-3*n, 2*n); vertex(2*n, -3*n);vertex(3*n, -3*n);vertex(-2*n, 2*n);} 
 if (d == 3) {vertex(-5*n, 4*n); vertex(-n, 0); vertex(0, 0); vertex(-4*n, 4*n);} 
 endShape(CLOSE); 
 beginShape(); 
 fill(c3); 
 //parallel links 
 if (d == 1) {vertex(n, 0); vertex(n, -n); vertex(5*n, -5*n); vertex(5*n, -4*n);} 
 if (d == 0) {vertex(-2*n, 3*n); vertex(-2*n, 2*n); vertex(3*n, -3*n); vertex(3*n, -2*n);} 
 if (d == 3) {vertex(-4*n, 5*n); vertex(-4*n, 4*n); vertex(0, 0); vertex(0, n);} 
 endShape(CLOSE); 
 popMatrix(); 
 } 
}
 
 
acht roterende boxen. Bekijk de draaiende boxen op deze server
 
 

Vormen vorm0; Vormen vorm1; Vormen vorm3; Vormen vorm4; 
Vormen vorm5; Vormen vorm6; Vormen vorm7; Vormen vorm8; 
 
void setup() { 
  size(780, 560); 
  float x = 0; 
  float y = 0; 
  float n = height/10; 
  vorm0 = new Box_n4a(n,    0, x, y,  0,color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 50));   
  vorm1 = new Box_n4a(n*0.5,3, x, y, 45,color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));   
  vorm3 = new Box_n4a(n,    0, x, y, 90,color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 50)); 
  vorm4 = new Box_n4a(n*0.5,3, x, y,135,color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100)); 
  vorm5 = new Box_n4a(n,    0, x, y,180,color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 50));   
  vorm6 = new Box_n4a(n*0.5,3, x, y,225,color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));   
  vorm7 = new Box_n4a(n,    0, x, y,270,color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 50)); 
  vorm8 = new Box_n4a(n*0.5,3, x, y,315,color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100)); 
} 
void draw() { 
  background(#E6FBFF); 
 // background(0); 
  stroke(255, 0, 0); 
  line  (width/2, 0, width/2, height); 
  line  (0, height/2, width, height/2); 
  stroke(0);  
  pushMatrix(); 
  translate(width/2, height/2); 
  vorm0.draaienRe(); 
  vorm0.display();    
  vorm3.display(); 
  vorm5.display();  
  vorm7.display(); 
  popMatrix(); 
   
  pushMatrix(); 
  translate(width/2, height/2); 
  vorm1.draaienLi(); 
  vorm1.display();  
  vorm4.display();  
  vorm6.display();  
  vorm8.display(); 
  popMatrix(); 
} 
 
void keyPressed() {    
        if (key == 's') {   
    noLoop();   
  }    
   if (key == 'r') {      
    loop();   
  }   
 }