box 2na 0 1 3

De drie boxen in draaipunten 0, 1, en 3

 

box1 2 dp3 box2 270gr

twee boxen, draaipunt 3, een box 270 gr rotatie

 

box dp0 135 gr

box toegevoegd, draaipunt 0, rotatie 135 graden

 

Boxen dp3 rot 0 90 180 270

4 boxen, draaipunt 3,
rotatie, 0, 90, 180, 270 graden
 
 
 
box 2na 6boxen1
 
 
 
box 2na 6boxen2
 
 
 
box 2na 6boxen3
header box 2na
 
 
Box_2na                                                             terug naar de inleiding
 
De box bestaat uit een vierkant 2*n x 2*n  en een diepte a = sqrt(2*n*n);
 
 

class Box_2na extends Vormen { 
Box_2na(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() {  
 pushMatrix(); 
 translate(x, y); 
 rotate(radians(hoek));  
 beginShape(); 
 //Vierkant 
 fill(c1); 
 if (d == 1) {vertex(0, 0);vertex(0, -2*n);vertex(2*n, -2*n);vertex(2*n, 0);} 
 if (d == 0) {vertex(n/2, 3*n/2);vertex(-3*n/2, 3*n/2);vertex(-3*n/2, -n/2);vertex(n/2, -n/2);} 
 if (d == 3) {vertex(-n, 3*n);vertex(-3*n, 3*n);vertex(-3*n, n);vertex(-n, n);} 
 endShape(CLOSE); 
 beginShape(); 
 fill(c2); 
 //parallel rechts 
 if (d == 1) {vertex(0, -2*n); vertex(n, -3*n); vertex(3*n, -3*n); vertex(2*n, -2*n);} 
 if (d == 0) {vertex(n/2, -n/2); vertex(-3*n/2, -n/2); vertex(-n/2, -3*n/2); vertex(3*n/2, -3*n/2);} 
 if (d == 3) {vertex(-n, n); vertex(-3*n, n); vertex(-2*n, 0); vertex(0, 0);} 
 endShape(CLOSE); 
 beginShape(); 
 fill(c3); 
 //parallel links 
 if (d == 1) {vertex(2*n, -2*n); vertex(3*n, -3*n);vertex(3*n, -n);vertex(2*n, 0);} 
 if (d == 0) {vertex(n/2, 3*n/2);vertex(n/2, -n/2);vertex(3*n/2, -3*n/2);vertex(3*n/2, n/2);} 
 if (d == 3) {vertex(-n, 3*n); vertex(-n, n);vertex(0, 0);vertex(0, 2*n);} 
 endShape(CLOSE); 
 popMatrix(); 
 } 
}
 

 

Schets met 6 roterende boxen    De schets maakt gebruik van de superclass:  "Vormen"  en de subclass:  "Box_2na"

De roterende boxen op deze server

 

 

Vormen [] vorm; 
void setup() {  
 size(780, 560);  
 
 float x = width/2;  
 float y = height/2;  
 float n = height/10;  
 vorm = new Vormen[8]; 
 vorm[0] = new Box_2na(n, 1, x-n, y, -45, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));  
 vorm[1] = new Box_2na(n, 1, x-n, y, -225, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));   
 vorm[2] = new Box_2na(n, 1, x, y, -45, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));   
 vorm[3] = new Box_2na(n, 1, x, y, -225, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));  
 vorm[4] = new Box_2na(n, 1, x+n, y, -45, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));   
 vorm[5] = new Box_2na(n, 1, x+n, y, -225, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));  
 vorm[6] = new Box_2na(n, 1, x, y, -45, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));   
 vorm[7] = new Box_2na(n, 1, x, y, -225, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 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 < 8; i++) 
{ 
 vorm[i].display();   
} 
 vorm[0].dpRotLi(vorm[0]); 
 vorm[1].dpRotRe(vorm[1]);  
 vorm[4].dpRotRe(vorm[4]); 
 vorm[5].dpRotLi(vorm[5]);  
 vorm[3].dpRotRe(vorm[3]);   
 vorm[2].dpRotRe(vorm[2]); 
 vorm[6].dpRotLi(vorm[6]);   
 vorm[7].dpRotLi(vorm[7]); 
} 
 
void keyPressed() {      
   if (key == 's') {     
    noLoop();     
  }      
   if (key == 'r') {        
    loop();     
  }     
 }