boxen nz in dp

 De boxen in hun draaipunten

 

box nz 6 7 3 boxen in dp 3, 6 en 7, -135 graden
h1 = sqrt(2*n*n)

 

 

 

 

box1 nz

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vb1 box nz
De kleinste box beweegt zich op en neer
code in de schets
 
 
 
 
vb2 box nz

 

 

header box nz
 
Box_nh        Box met vierkant als top                 terug naar de inleiding
 
De lengte van de zijde van het parallellogram is h1, is het tweede argument van de constructor hier: h1 = n;
 
Het eerste argument van de constructor is de zijde van het vierkant              ''zie ook de  voorbeelden met box_nh''
 
 

class Box_nh extends Vormen { 
 
  Box_nh(float n_, float h1_, int d_, float x_, float y_, float hoek_, color c1_, color c2_, color c3_) { 
    super(); 
    n = n_; 
    h1 = h1_; 
    x = x_;  
    y = y_;  
    hoek = hoek_; 
    c1 = c1_; 
    c2 = c2_; 
    c3 = c3_; 
     d = d_; 
  } 
 
  void display() {     
    // noStroke(); 
    float a = sqrt(2*n*n); 
    pushMatrix(); 
    translate(x, y); 
    rotate(radians(hoek));   
    beginShape(); 
    //Vierkant 
    fill(c1); 
    if (d == 0) {vertex(-a/2, 0);vertex(0, -a/2);vertex(a/2, 0);vertex(0, a/2);}     
    if (d == 1) {vertex(0, -h1); vertex(a/2, -(h1+a/2));vertex(a, -h1);vertex(a/2,-(h1-a/2));}        
    if (d == 2) {vertex(0, 0);vertex(a/2, -a/2);vertex(a, 0);vertex(a/2, a/2);}    
    if (d == 3) {vertex(-a/2, a/2);vertex(0, 0);vertex(a/2, a/2);vertex(0, a);} 
    if (d == 4) {vertex(-a, 0);vertex(-a/2, -a/2);vertex(0, 0);vertex(-a/2, a/2);}    
    if (d == 5) {vertex(-a, -h1);vertex(-a/2, -(h1+a/2));vertex(0, -h1);vertex(-a/2, -(h1-a/2));}    
    if (d == 6) {vertex(-a/2, -(h1+a/2));vertex(0, -(h1+a));vertex(a/2,-(h1+a/2));vertex(0, -h1);}    
    if (d == 7) {vertex(-a/2, -a/2);vertex(0, -a);vertex(a/2, -a/2);vertex(0, 0);} 
    endShape(CLOSE); 
    beginShape(); 
    fill(c2); 
    //parallel Links 
    if (d == 0) {vertex(-a/2, 0); vertex(-a/2, h1);  vertex(0, h1+a/2);  vertex(0, a/2);} 
    if (d == 1) {vertex(0, 0); vertex(0, -h1);vertex(a/2, -(h1-a/2));vertex(a/2, a/2);}    
    if (d == 2) {vertex(0, h1); vertex(0, 0); vertex(a/2, a/2); vertex(a/2, h1+a/2);}     
    if (d == 3) {vertex(-a/2, h1+a/2); vertex(-a/2, a/2); vertex(0, a); vertex(0, h1+a);}     
    if (d == 4) {vertex(-a, h1);vertex(-a, 0);vertex(-a/2, a/2);vertex(-a/2, h1+a/2);}    
    if (d == 5) {vertex(-a, 0);vertex(-a, -h1);vertex(-a/2, -(h1-a/2));vertex(-a/2, a/2);}    
    if (d == 6) {vertex(-a/2, -a/2);vertex(-a/2, -(h1+a/2));vertex(0, -h1);vertex(0, 0);}     
    if (d == 7) {vertex(-a/2, h1-a/2);vertex(-a/2, -a/2);vertex(0, 0);vertex(0, h1);} 
    endShape(CLOSE); 
    beginShape(); 
    fill(c3); 
    //parallel rechts 
    if (d == 0) {vertex(0, a/2);  vertex(0, h1+a/2); vertex(a/2, h1); vertex(a/2, 0);} 
    if (d == 1) {vertex(a/2, -(h1-a/2)); vertex(a, -h1); vertex(a, 0); vertex(a/2, a/2);}     
    if (d == 2) {vertex(a/2, a/2); vertex(a, 0); vertex(a, h1); vertex(a/2, h1+a/2);}     
    if (d == 3) {vertex(0, a); vertex(a/2, a/2); vertex(a/2, h1+a/2); vertex(0, h1+a);}     
    if (d == 4) {vertex(-a/2, a/2);vertex(0, 0);vertex(0, h1);vertex(-a/2, h1+a/2);}    
    if (d == 5) {vertex(-a/2, -(h1-a/2));vertex(0, -h1);vertex(0, 0);vertex(-a/2, a/2);}     
    if (d == 6) {vertex(0, -h1);vertex(a/2, -(h1+a/2));vertex(a/2, -a/2);vertex(0, 0);}     
    if (d == 7) {vertex(0, 0);vertex(a/2, -a/2);vertex(a/2, h1-a/2);vertex(0, h1);} 
    endShape(CLOSE); 
    popMatrix(); 
  } 
}

 

Schets, de kleinste box beweegt zich op en neer.
De schets maakt gebruik van de superclass:  "Vormen"  en de subclass:  "Box_nh"
bekijk de op en neer bewegende box op deze server
zie ook de alien die zich door de boxen op en neer beweegt

 

 

Vormen vorm0;  
Vormen vorm1;  
Vormen vorm3;  
Vormen vorm4;  
void setup() { 
   
 size(960, 540);  
 //fullScreen(); 
 float x = width/2;  
 float y = height/2;  
 float n = height/10;  
 float h = sqrt(2*n*n); 
 vorm0 = new Box_nh(n*1.2, h,     0, x, y-2*n, 0, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));   
 vorm1 = new Box_nh(n*1.4, h*1.1, 0, x, y,     0, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));   
 vorm3 = new Box_nh(n*1.6, h*1.2, 0, x, y+2*n, 0, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));  
 vorm4 = new Box_nh(n,     h/4,   0, x, y,     0, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));  
}  
void draw() {  
 background(#E6FBFF);  
 stroke(255, 0, 0);  
 line (width/2, 0, width/2, height);  
 line(0, height/2, width, height/2);  
 stroke(0);   
 vorm0.display();   
 vorm1.display();   
 vorm3.display();  
 vorm4.display();  
 vorm4.opEnNeer();  
} 
 
void keyPressed() {     
  if (key == 's') {    
    noLoop();  
  }     
  if (key == 'r') {       
    loop();  
  }  
}