De boxen in hun draaipunten

 

 

 

 

 

 

boxen met x y verplaatsing

Boxen in dp 1, 5, 3 en 6 met y-n
in dp 4 met x-2hn
in dp 2 met x+2hn
 
 
 
 
 
 boxen met h = n/2
 
 boxen met h1 = n/2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

header box

 

Volgorde van color in de constructor:  c1 = rood,   c2 = groen,   c3 = blauw        

 

Box  met ruit als top                                 terug naar de inleiding

float hn = sqrt(3*n*n/4) is de hoogtelijn van de gelijkzijdige driehoek,  zie ook de class   ''Ruit'' , en het voorbeeld  drie boxen en tien ruiten

Eerste argument ¨n¨ van de constructor is de lengte van de zijde van de ruit
Tweede argument ¨h1¨ van de constructor is de hoogte van de box
Als n = h1 is de box samengesteld met 3 ruiten
 
 

class Box extends Vormen { 
 
  Box(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 hn = sqrt(3*n*n/4); 
    pushMatrix(); 
    translate(x, y); 
    rotate(radians(hoek));   
    beginShape(); 
    //ruit boven 
    fill(c1); 
    if (d == 0) {vertex(-hn, 0);vertex(0, -n/2);vertex(hn, 0);vertex(0, n/2);} 
    if (d == 1) {vertex(0, -(h1)); vertex(hn, -(h1+n/2));vertex(2*hn, -(h1));vertex(hn, -(h1-n/2));}    
    if (d == 2) {vertex(0, 0);vertex(hn, -n/2);vertex(2*hn, 0);vertex(hn, n/2);} 
    if (d == 3) {vertex(-hn, n/2);vertex(0, 0);vertex(hn, n/2);vertex(0, n);} 
    if (d == 4) {vertex(-2*hn, 0);vertex(-hn, -n/2);vertex(0, 0);vertex(-hn, n/2);} 
    if (d == 5) {vertex(-2*hn, -h1);vertex(-hn, -(h1+n/2));vertex(0, -h1);vertex(-hn, -(h1-n/2));} 
    if (d == 6) {vertex(-hn,-(h1+n/2));vertex(0, -(h1+n));vertex(hn, -(h1+n/2));vertex(0, -h1);} 
    if (d == 7) {vertex(-hn,-n/2);vertex(0, -n);vertex(hn, -n/2);vertex(0, 0);} 
    endShape(CLOSE); 
    beginShape(); 
    fill(c2); 
    //ruit links 
    if (d == 0) {vertex(-hn, h1); vertex(-hn, 0);  vertex(0, n/2);  vertex(0, n/2+h1);} 
    if (d == 1) {vertex(0, 0); vertex(0, -h1); vertex(hn, -(h1-n/2)); vertex(hn, n/2);} 
    if (d == 2) {vertex(0, h1); vertex(0, 0); vertex(hn, n/2); vertex(hn, h1+n/2);} 
    if (d == 3) {vertex(-hn, h1+n/2); vertex(-hn, n/2); vertex(0, n); vertex(0, n+h1);} 
    if (d == 4) {vertex(-2*hn, h1);vertex(-2*hn, 0);vertex(-hn, n/2);vertex(-hn, n/2+h1);} 
    if (d == 5) {vertex(-2*hn, 0);vertex(-2*hn, -h1);vertex(-hn, -(h1-n/2));vertex(-hn,n/2);} 
    if (d == 6) {vertex(-hn, -n/2);vertex(-hn, -(h1+n/2));vertex(0, -h1);vertex(0, 0);} 
    if (d == 7) {vertex(-hn, h1-n/2); vertex(-hn, -n/2);  vertex(0, 0);  vertex(0, h1);} 
    endShape(CLOSE); 
    beginShape(); 
    fill(c3); 
    //ruit rechts 
    if (d == 0) {vertex(0, n/2);  vertex(hn, 0); vertex(hn, h1); vertex(0, n/2+h1);} 
    if (d == 1) {vertex(hn, -(h1-n/2)); vertex(2*hn, -h1);vertex(2*hn, 0);vertex(hn, n/2);} 
    if (d == 2) {vertex(hn, n/2); vertex(2*hn, 0); vertex(2*hn, h1); vertex(hn, h1+n/2);} 
    if (d == 3) {vertex(0, n); vertex(hn, n/2); vertex(hn, h1+n/2); vertex(0, h1+n);} 
    if (d == 4) {vertex(-hn, n/2);vertex(0, 0);vertex(0, h1);vertex(-hn, n/2+h1);} 
    if (d == 5) {vertex(-hn, -(h1-n/2));vertex(0, -h1);vertex(0, 0);vertex(-hn, n/2);} 
    if (d == 6) {vertex(0, -h1);vertex(hn, -(h1+n/2));vertex(hn, -n/2);vertex(0, 0);} 
    if (d == 7) {vertex(0, 0);  vertex(hn, -n/2); vertex(hn, h1-n/2); vertex(0, h1);} 
    endShape(CLOSE); 
    popMatrix(); 
  } 
}
 
 7 over elkaar roterende boxen  zie de rotaties
 
 

Vormen vorm0; 
Vormen vorm1; 
Vormen vorm2; 
Vormen vorm3; 
Vormen vorm4; 
Vormen vorm5; 
Vormen vorm6; 
 
void setup() { 
  size(780, 560); 
  float x = width/2; 
  float y = height/2; 
  float n = height/20; 
  vorm0 = new Box(n,   7, x, y, 0, color(255, 0, 0, 50), color(0, 255, 0, 50), color(0, 0, 255, 50)); 
  vorm1 = new Box(n*2, 7, x, y, 60, color(255, 0, 0, 50), color(0, 255, 0, 50), color(0, 0, 255, 50)); 
  vorm2 = new Box(n*3, 7, x ,y, 0, color(255, 0, 0, 50), color(0, 255, 0, 50), color(0, 0, 255, 50)); 
  vorm3 = new Box(n*4, 7, x, y, 60, color(255, 0, 0, 50), color(0, 255, 0, 50), color(0, 0, 255, 50)); 
  vorm4 = new Box(n*5, 7, x, y, 0, color(255, 0, 0, 50), color(0, 255, 0, 50), color(0, 0, 255, 50));   
  vorm5 = new Box(n*6, 7, x, y, 60, color(255, 0, 0, 50), color(0, 255, 0, 50), color(0, 0, 255, 50)); 
  vorm6 = new Box(n*7, 7, x, y, 0, color(255, 0, 0, 50), color(0, 255, 0, 50), 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); 
  vorm0.display(); 
  vorm1.display(); 
  vorm2.display(); 
  vorm3.display(); 
  vorm4.display(); 
  vorm5.display(); 
  vorm6.display(); 
    
  if (key == 's') {      
       
 }        
   else   
 {   
  vorm6.dpRotRe(vorm6); 
  vorm4.dpRotLi(vorm4); 
  vorm3.dpRotRe(vorm3); 
  vorm1.dpRotLi(vorm1); 
 } 
}