boxen in dp

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
 
 
 
 
 
 
 
 
box01 vb
 
 
 
 
 
 
 
 
box02 vb
 
 
 
 
 
 
 
 
 
 
box03 vb

header box

 

Box  samengesteld met drie ruiten                                      terug naar de inleiding

float hn = sqrt(3*n*n/4) is de hoogtelijn van de gelijkzijdige driehoek,  zie ook de class   ''Ruit''

 

 

//Box samengesteld met 3 ruiten 
class Box extends Vormen { 
 
  Box(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(); 
    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, -n); vertex(hn, -1.5*n);vertex(2*hn, -n);vertex(hn, -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, -n);vertex(-hn, -1.5*n);vertex(0, -n);vertex(-hn, -n/2);} 
    if (d == 6) {vertex(-hn, -1.5*n);vertex(0, -2*n);vertex(hn, -1.5*n);vertex(0, -n);} 
    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, n); vertex(-hn, 0);  vertex(0, n/2);  vertex(0, 1.5*n);} 
    if (d == 1) {vertex(0, 0); vertex(0, -n); vertex(hn, -n/2); vertex(hn, n/2);} 
    if (d == 2) {vertex(0, n); vertex(0, 0); vertex(hn, n/2); vertex(hn, 1.5*n);} 
    if (d == 3) {vertex(-hn, 1.5*n); vertex(-hn, n/2); vertex(0, n); vertex(0, 2*n);} 
    if (d == 4) {vertex(-2*hn, n);vertex(-2*hn, 0);vertex(-hn, n/2);vertex(-hn, 1.5*n);} 
    if (d == 5) {vertex(-2*hn, 0);vertex(-2*hn, -n);vertex(-hn, -n/2);vertex(-hn,n/2);} 
    if (d == 6) {vertex(-hn, -n/2);vertex(-hn, -1.5*n);vertex(0, -n);vertex(0, 0);} 
    if (d == 7) {vertex(-hn, n/2); vertex(-hn, -n/2);  vertex(0, 0);  vertex(0, n);} 
    endShape(CLOSE); 
    beginShape(); 
    fill(c3); 
    //ruit rechts 
    if (d == 0) {vertex(0, n/2);  vertex(hn, 0); vertex(hn, n); vertex(0, 1.5*n);} 
    if (d == 1) {vertex(hn, -n/2); vertex(2*hn, -n);vertex(2*hn, 0);vertex(hn, n/2);} 
    if (d == 2) {vertex(hn, n/2); vertex(2*hn, 0); vertex(2*hn, n); vertex(hn, 1.5*n);} 
    if (d == 3) {vertex(0, n); vertex(hn, n/2); vertex(hn, 1.5*n); vertex(0, 2*n);} 
    if (d == 4) {vertex(-hn, n/2);vertex(0, 0);vertex(0, n);vertex(-hn, 1.5*n);} 
    if (d == 5) {vertex(-hn, -n/2);vertex(0, -n);vertex(0, 0);vertex(-hn, n/2);} 
    if (d == 6) {vertex(0, -n);vertex(hn, -1.5*n);vertex(hn, -n/2);vertex(0, 0);} 
    if (d == 7) {vertex(0, 0);  vertex(hn, -n/2); vertex(hn, n/2); vertex(0, n);} 
    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(960, 540); 
  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(); 
   
  vorm6.dpRotRe(vorm6); 
  vorm4.dpRotLi(vorm4); 
  vorm3.dpRotRe(vorm3); 
  vorm1.dpRotLi(vorm1); 
} 
 
void keyPressed() {       
   if (key == 's') {      
    noLoop();      
  }     
       
   if (key == 'r') {         
    loop();      
  }      
 }