vier 3d hoeken draaipunt 4
rotatie: 0, 90, 180 en 270 graden

 

 

drie 3d hoeken, draaipunten 2, 4 en 6

 

 

 3d hoek in draaipunt 4, rotatie, 180 graden
verplaatsing in y richting, y+4*a

 

 

 

 

vier 3d hoeken, zie de schets voor de code

 

De schets met de gedraaide hoeken

 

De schets met de gedraaide hoeken

header hoek3d na4n

 

 

hoekbalk, "Hoek3d_na4n"                                    terug naar de inleiding

hoekbalk:  n breed, a = sqrt(2n*n*); diep en 4n lang

 

class Hoek3d_na4n extends Vormen { 
 Hoek3d_na4n(float n_, int d_, float x_, float y_, float hoek_, color c1_, color c2_, color c3_, color c4_, color c5_) { 
    super(); 
    n = n_;  
    x = x_;  
    y = y_;  
    hoek = hoek_;  
    c1 = c1_; c2 = c2_; c3 = c3_; c4 = c4_; c5 = c5_; 
     d = d_; 
  } 
 
  void display() {    
    // noStroke(); 
    pushMatrix(); 
    translate(x, y); 
    rotate(radians(hoek)); 
    fill(c1); 
    beginShape(); 
    //hoek 
    float a =  sqrt(2*n*n); 
    if (d == 2) {vertex(a/2, a/2); vertex(0, 0); vertex(2*a, -2*a); vertex(4*a, 0); vertex(7*a/2, a/2); vertex(2*a, -a);} 
    if (d == 4) {vertex(-3*a/2, 5*a/2); vertex(-2*a, 2*a); vertex(0, 0); vertex(2*a, 2*a); vertex(3*a/2, 5*a/2); vertex(0, a);} 
    if (d == 6) {vertex(-7*a/2, a/2); vertex(-4*a, 0); vertex(-2*a, -2*a); vertex(0, 0); vertex(-a/2, a/2); vertex(-2*a, -a);} 
    endShape(CLOSE); 
    //paral 3naLi 
    fill(c2); 
    beginShape(); 
    if (d == 2) {vertex(7*a/2, 3*a/2); vertex(2*a, 0);vertex(2*a, -a); vertex(7*a/2, a/2);} 
    if (d == 4) {vertex(3*a/2, 7*a/2); vertex(0, 2*a);vertex(0,a); vertex(3*a/2, 5*a/2);} 
    if (d == 6) {vertex(-a/2, 3*a/2); vertex(-2*a, 0);vertex(-2*a, -a); vertex(-a/2, a/2);} 
    endShape(CLOSE); 
    //paral 3naRe 
    fill(c3); 
    beginShape(); 
    if (d == 2) {vertex(a/2, 3*a/2); vertex(a/2, a/2); vertex(2*a,-a); vertex(2*a, 0);} 
    if (d == 4) {vertex(-3*a/2, 7*a/2); vertex(-3*a/2, 5*a/2); vertex(0,a); vertex(0, 2*a);} 
    if (d == 6) {vertex(-7*a/2, 3*a/2); vertex(-7*a/2, a/2); vertex(-2*a,-a); vertex(-2*a, 0);} 
    endShape(CLOSE); 
    //paral naRe 
    fill(c5); 
    beginShape(); 
    if (d == 2) {vertex(7*a/2, 3*a/2); vertex(7*a/2, a/2); vertex(4*a, 0); vertex(4*a, a);} 
    if (d == 4) {vertex(3*a/2, 7*a/2); vertex(3*a/2, 5*a/2); vertex(2*a, 2*a); vertex(2*a, 3*a);} 
    if (d == 6) {vertex(-a/2, 3*a/2); vertex(-a/2, a/2); vertex(0, 0); vertex(0, a);} 
    endShape(CLOSE); 
    //paral naLi 
    beginShape(); 
    fill(c4); 
    if (d == 2) {vertex(0, a); vertex(0, 0); vertex(a/2, a/2); vertex(a/2, 3*a/2);} 
    if (d == 4) {vertex(-3*a/2, 7*a/2); vertex(-2*a, 3*a); vertex(-2*a, 2*a); vertex(-3*a/2, 5*a/2);} 
    if (d == 6) {vertex(-7*a/2, 3*a/2); vertex(-4*a, a); vertex(-4*a, 0); vertex(-7*a/2, a/2);} 
    endShape(CLOSE); 
    popMatrix(); 
  } 
}
 
Schets: in elkaar geschoven 3d hoeken
de schets maakt gebruik van de superclass:  "Vormen"  en de subclass:  "Hoek3d_na4n"
De schets op de server met de draaipunt rotatie methoden in actie
 
 

Vormen [] vorm; 
  
void setup() {   
 size(780, 560);   
 float x = width/2;   
 float y = height/2;   
 float n = height/18;   
 float a = sqrt(2*n*n);   
  
 int ch1 = color(255,0,0,100);  
 int ch2 = color(0,255,0,100);  
 int ch3 = color(0,0,255,100);  
 int ch4 = color(255,255,0,100); 
 int ch5 = color(255,0,255,100); 
 vorm = new Vormen[4]; 
 vorm[0] = new Hoek3d_na4n(n, 4, x, y-5*a/2, 0,ch1,ch2,ch3,ch4,ch5);   
 
 vorm[1] = new Hoek3d_na4n(n, 4, x+5*a/2, y, 90, ch1,ch2,ch3,ch4,ch5);  
  
 vorm[2] = new Hoek3d_na4n(n, 4, x, y+5*a/2, 180, ch1,ch2,ch3,ch4,ch5);  
 
 vorm[3] = new Hoek3d_na4n(n, 4, x-5*a/2, y, 270, ch1,ch2,ch3,ch4,ch5);  
  
}   
void draw() {   
 background(#E6FBFF);   
 // background(0);   
 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 < 4; i++)       
  {       
    vorm[i].display();   
  }     
   
 vorm[3].dpRotLi(vorm[3]);  
 vorm[2].dpRotRe(vorm[2]);  
 vorm[1].dpRotLi(vorm[1]);  
 vorm[0].dpRotRe(vorm[0]);  
}  
  void keyPressed() {    
        if (key == 's') {   
    noLoop();   
  }  
    
   if (key == 'r') {      
    loop();   
  }   
 }