parallellogrammen in dp 3 en 7, -45 gr rotatie
parallellogrammen in dp 4 en 8, 90 gr rotatie
 
 
 
 
parallellogrammen in dp 3 en 7, -45 gr rotatie
parallellogrammen in dp 4 en 8, 90 gr rotatie
 
 
 
 
 
 
 
 
 Zie de schets voor de code
 
 
 

header paral na

                   De parallogrammen met  draaipunten 0 t/m 8,  met hoogte en lengte  = n

Parallellogram , "Paral"        ga naar de roterende parallellogrammen                    terug naar de inleiding

schuine zijde a = sqrt(2*n*n);                      zie ook de classe  "Paral" en "paral3d" in p5.js

Argumenten van de constructor: 1) n, hoogte, 2) l, lengte, 3) lr, links of rechts, 4) d, draaipunt, 5) x positie draaipunt, 6) y positie draaipunt, 7) hoek, 8) kleur

 

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

//animatie met 6 parallellogrammen met hoogten = n en lengte = n 
Vormen[] vorm = new Vormen[8];   
void setup() {   
 size(960, 540);   
 float x = width/2;   
 float y = height/2;   
 float n = height/8; 
 float h = n; 
 float l = n; 
 vorm[0] = new Paral(h, l, 0, 1, x-n, y, 0, color(255, 255, 0, 100));   
 vorm[1] = new Paral(h, l, 1, 7, x+n, y, 0, color(255, 255, 0, 100));   
 vorm[2] = new Paral(h, l, 1, 3, x-n, y, 0, color(255, 0, 0, 100));   
 vorm[3] = new Paral(h, l, 0, 5, x+n, y, 0, color(100, 0, 255, 100));   
 vorm[4] = new Paral(h, l, 1, 1, x-2*n, y-n,-45, color(0, 255, 0, 100));   
 vorm[5] = new Paral(h, l, 0, 7, x+2*n, y-n, 45, color(0, 100, 255, 100));   
 vorm[6] = new Paral(h, l, 0, 3, x-2*n, y+n, 45, color(255, 0, 200, 100));   
 vorm[7] = new Paral(h, l, 1, 5, x+2*n, y+n,-45, color(255, 0, 200, 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);   
   
 for (int i = 0; i < 8; i++)   
 vorm[i].display();   
   
 vorm[0].dpRotLi(vorm[0]);   
 vorm[1].dpRotRe(vorm[1]);   
   
 vorm[4].dpRotRe(vorm[4]);   
 vorm[5].dpRotLi(vorm[5]);   
   
 vorm[2].dpRotRe(vorm[2]);   
 vorm[3].dpRotLi(vorm[3]);   
   
 vorm[6].dpRotLi(vorm[6]);   
 vorm[7].dpRotRe(vorm[7]);   
}   
   
void keyPressed() {   
 if (key == 's') {   
 noLoop();   
 }   
 if (key == 'r') {   
 loop();   
 }   
}