boxen nz in dp

 De boxen in hun draaipunten

 

box nz 6 7 3 boxen in dp 3, 6 en 7, -135 graden
z = 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_nz                                                     terug naar de inleiding
 
De lengte van de zijde van het parallellogram is z, is het tweede argument van de constructor hier: z = n;
 
Het eerste argument van de constructor is de zijde van het vierkant              ''zie ook de voorbeelden met box_nz''
 
 

class Box_nz extends Vormen { 
 
  Box_nz(float n_, float z_, int d_, float x_, float y_, float hoek_, color c1_, color c2_, color c3_) { 
    super(); 
    n = n_; 
    z = z_; 
    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, -z); vertex(a/2, -(z+a/2));vertex(a, -z);vertex(a/2,-(z-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, -z);vertex(-a/2, -(z+a/2));vertex(0, -z);vertex(-a/2, -(z-a/2));}    
    if (d == 6) {vertex(-a/2, -(z+a/2));vertex(0, -(z+a));vertex(a/2,-(z+a/2));vertex(0, -z);}    
    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, z);  vertex(0, z+a/2);  vertex(0, a/2);} 
    if (d == 1) {vertex(0, 0); vertex(0, -z);vertex(a/2, -(z-a/2));vertex(a/2, a/2);}    
    if (d == 2) {vertex(0, z); vertex(0, 0); vertex(a/2, a/2); vertex(a/2, z+a/2);}     
    if (d == 3) {vertex(-a/2, z+a/2); vertex(-a/2, a/2); vertex(0, a); vertex(0, z+a);}     
    if (d == 4) {vertex(-a, z);vertex(-a, 0);vertex(-a/2, a/2);vertex(-a/2, z+a/2);}    
    if (d == 5) {vertex(-a, 0);vertex(-a, -z);vertex(-a/2, -(z-a/2));vertex(-a/2, a/2);}    
    if (d == 6) {vertex(-a/2, -a/2);vertex(-a/2, -(z+a/2));vertex(0, -z);vertex(0, 0);}     
    if (d == 7) {vertex(-a/2, z-a/2);vertex(-a/2, -a/2);vertex(0, 0);vertex(0, z);} 
    endShape(CLOSE); 
    beginShape(); 
    fill(c3); 
    //parallel rechts 
    if (d == 0) {vertex(0, a/2);  vertex(0, z+a/2); vertex(a/2, z); vertex(a/2, 0);} 
    if (d == 1) {vertex(a/2, -(z-a/2)); vertex(a, -z); vertex(a, 0); vertex(a/2, a/2);}     
    if (d == 2) {vertex(a/2, a/2); vertex(a, 0); vertex(a, z); vertex(a/2, z+a/2);}     
    if (d == 3) {vertex(0, a); vertex(a/2, a/2); vertex(a/2, z+a/2); vertex(0, z+a);}     
    if (d == 4) {vertex(-a/2, a/2);vertex(0, 0);vertex(0, z);vertex(-a/2, z+a/2);}    
    if (d == 5) {vertex(-a/2, -(z-a/2));vertex(0, -z);vertex(0, 0);vertex(-a/2, a/2);}     
    if (d == 6) {vertex(0, -z);vertex(a/2, -(z+a/2));vertex(a/2, -a/2);vertex(0, 0);}     
    if (d == 7) {vertex(0, 0);vertex(a/2, -a/2);vertex(a/2, z-a/2);vertex(0, z);} 
    endShape(CLOSE); 
    popMatrix(); 
  } 
}

 

Schets, de kleinste box beweegt zich op en neer.
De schets maakt gebruik van de superclass:  "Vormen"  en de subclass:  "Box_nz"
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 z = sqrt(2*n*n); 
 vorm0 = new Box_nz(n*1.2, z,     0, x, y-2*n, 0, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));   
 vorm1 = new Box_nz(n*1.4, z*1.1, 0, x, y,     0, color(255, 0, 0, 100), color(0, 255, 0, 100), color(0, 0, 255, 100));   
 vorm3 = new Box_nz(n*1.6, z*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_nz(n,     z/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();  
  }  
}