praral 3na lr0
9 parallellogrammen: dp 2 en 6 rotatie 90 graden
parallellogrammen: dp 1 en 5 rotatie -45 graden
 
 

praral 3na lr1

9 parallellogrammen: 4 en 8 rotatie 90 graden
parallellogram 7 en 3 rotatie -45 graden
 
 
 
 
 
 
 
 
 
 
 
 
 
 
paral 3naLi Rot1
 
 
 
 
paral 3naLi Rot2
paral 3naLi Rot
acht parallellogrammen, zie de schets voor de code
 
 
 
paral 3naLi Rot3
 

header paral 3naLi

                           de 9 draaipunten, de parallellogrammen wijzen naar li dus het tweede argument in de constructor = 0

 

Parallellogram , "Paral_3na"                                 terug naar de inleiding

basis = 3n, schuine zijde a = sqrt(2*n*n);

 

class Paral_3na extends Vormen { 
Paral_3na(float n_, int lr_, int d_, float x_, float y_, float hoek_, color c1_) {  
 super();  
 n = n_;  
 lr = lr_; 
 x = x_;   
 y = y_;   
 hoek = hoek_;  
 c1 = c1_;  
 d = d_;  
 } 
void display() {  
 fill(c1);  
 // noStroke();  
 pushMatrix();  
 translate(x, y);  
 rotate(radians(hoek));   
 beginShape();  
 if (d == 0 && lr ==1) {vertex(n, n/2); vertex(-2*n, n/2); vertex(-n, -n/2); vertex(2*n, -n/2);}  
 if (d == 1 && lr ==1) {vertex(3*n, 0); vertex(0, 0); vertex(n, -n); vertex(4*n, -n);}   
 if (d == 2 && lr ==1) {vertex(5*n/2, n/2);vertex(-n/2, n/2); vertex(n/2, -n/2); vertex(7*n/2, -n/2);}   
 if (d == 3 && lr ==1) {vertex(2*n, n); vertex(-n, n); vertex(0, 0); vertex(3*n, 0);}   
 if (d == 4 && lr ==1) {vertex(n/2, n); vertex(-5*n/2, n); vertex(-3*n/2, 0); vertex(3*n/2, 0);}   
 if (d == 5 && lr ==1) {vertex(-n, n); vertex(-4*n, n); vertex(-3*n, 0); vertex(0, 0);}   
 if (d == 6 && lr ==1) {vertex(-n/2, n/2); vertex(-7*n/2, n/2); vertex(-5*n/2, -n/2);vertex(n/2, -n/2);} 
 if (d == 7 && lr ==1) {vertex(0, 0); vertex(-3*n, 0); vertex(-2*n, -n); vertex(n, -n);}  
 if (d == 8 && lr ==1) {vertex(3*n/2, 0); vertex(-3*n/2, 0); vertex(-n/2, -n); vertex(5*n/2, -n);}  
 if (d == 0 && lr ==0) {vertex(2*n, n/2); vertex(-n, n/2); vertex(-2*n, -n/2); vertex(n, -n/2);}  
 if (d == 1 && lr ==0) {vertex(3*n, 0); vertex(0, 0); vertex(-n, -n); vertex(2*n, -n);}   
 if (d == 2 && lr ==0) {vertex(7*n/2, n/2);vertex(n/2, n/2); vertex(-n/2, -n/2); vertex(5*n/2, -n/2);}   
 if (d == 3 && lr ==0) {vertex(4*n, n); vertex(n, n); vertex(0, 0); vertex(3*n, 0);}   
 if (d == 4 && lr ==0) {vertex(5*n/2, n);vertex(-n/2, n); vertex(-3*n/2, 0);vertex(3*n/2, 0);}   
 if (d == 5 && lr ==0) {vertex(n, n); vertex(-2*n, n); vertex(-3*n, 0); vertex(0, 0);}   
 if (d == 6 && lr ==0) {vertex(n/2, n/2); vertex(-5*n/2, n/2); vertex(-7*n/2, -n/2);vertex(-n/2, -n/2);}  
 if (d == 7 && lr ==0) {vertex(0, 0); vertex(-3*n, 0); vertex(-4*n, -n); vertex(-n, -n);}   
 if (d == 8 && lr ==0) {vertex(3*n/2, 0); vertex(-3*n/2, 0); vertex(-5*n/2, -n); vertex(n/2, -n);}   
 endShape(CLOSE);  
 popMatrix();  
 }  
}
 
De schets met 8 roterende parallellogrammen. De schets maakt gebruik van  "paral_3na"  ,  en de superclass  "Vormen"
Bekijk de roterende parallellogrammen op deze server
 
 

Vormen [] vorm; 
  
void setup() {   
// fullScreen();   
  size(960, 540);   
  float x = width/2;   
  float y = height/2;   
  float n = height/12;   
  vorm = new Vormen [8]; 
  vorm[0] = new Paral_3na(n, 0, 7, x-n, y-n,  0, color(255, 255, 0, 100));   
  vorm[1] = new Paral_3na(n, 0, 7, x-n, y,    0, color(100, 255, 200, 100));   
  vorm[2] = new Paral_3na(n, 0, 7, x-n, y+n,  0, color(255, 100, 100, 100));   
  vorm[3] = new Paral_3na(n, 0, 7, x-n, y+2*n,0, color(100, 0, 255, 100));     
  vorm[4] = new Paral_3na(n, 1, 1, x+n, y-n,  0, color(255, 255, 0, 100));   
  vorm[5] = new Paral_3na(n, 1, 1, x+n, y,    0, color(100, 255, 200, 100));   
  vorm[6] = new Paral_3na(n, 1, 1, x+n, y+n,  0, color(255, 100, 100, 100));   
  vorm[7] = new Paral_3na(n, 1, 1, x+n, y+2*n,0, color(100, 0, 255, 100));   
 }   
   
void draw() {   
  background(#E6FBFF);  
//  background(0);   
  //assenstelsel   
  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 < 8; i++) 
  { 
  vorm[i].display();   
  } 
   
  vorm[0].dpRotRe(vorm[0]);    
  vorm[1].dpRotRe(vorm[1]);  
  vorm[2].dpRotRe(vorm[2]);  
  vorm[3].dpRotRe(vorm[3]);  
    
  vorm[4].dpRotLi(vorm[4]);    
  vorm[5].dpRotLi(vorm[5]);  
  vorm[6].dpRotLi(vorm[6]);  
  vorm[7].dpRotLi(vorm[7]);  
}  
  void keyPressed() {     
      if (key == 's') {    
    noLoop();    
  }     
      if (key == 'r') {       
    loop();    
  }    
 }