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
 
 
 
 
 

headerParal naLi

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

 

Parallellogram , "Paral_na"                           terug naar de inleiding

basis = n, schuine zijde a = sqrt(2*n*n);
het tweede argument "lr" in de constructor kan 0 of 1 zijn
parallellogram wijst naar links lr = 0.
parallellogram wijst naar rechts lr = 1.
 
 

class Paral_na extends Vormen { 
Paral_na(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(0, n/2); vertex(-n, n/2); vertex(0, -n/2); vertex(n, -n/2);}  
 if (d == 0 && lr == 0) {vertex(n, n/2); vertex(0, n/2); vertex(-n, -n/2); vertex(0, -n/2);}  
 if (d == 1 && lr == 1) {vertex(n, 0); vertex(0, 0); vertex(n, -n); vertex(2*n, -n);}  
 if (d == 1 && lr == 0) {vertex(n, 0); vertex(0, 0); vertex(-n, -n); vertex(0, -n);}  
 if (d == 2 && lr == 1) {vertex(n/2, n/2); vertex(-n/2, n/2); vertex(n/2, -n/2); vertex(3*n/2, -n/2);}  
 if (d == 2 && lr == 0) {vertex(3*n/2, n/2);vertex(n/2, n/2); vertex(-n/2, -n/2); vertex(n/2, -n/2);}  
 if (d == 3 && lr == 1) {vertex(0, n); vertex(-n, n); vertex(0, 0); vertex(n, 0);}  
 if (d == 3 && lr == 0) {vertex(2*n, n); vertex(n, n); vertex(0, 0); vertex(n, 0);}  
 if (d == 4 && lr == 1) {vertex(-n/2, n); vertex(-3*n/2, n); vertex(-n/2, 0); vertex(n/2, 0);}  
 if (d == 4 && lr == 0) {vertex(3*n/2, n); vertex(n/2, n); vertex(-n/2, 0); vertex(n/2, 0);}  
 if (d == 5 && lr == 1) {vertex(-n, n); vertex(-2*n, n); vertex(-n, 0); vertex(0, 0);}  
 if (d == 5 && lr == 0) {vertex(n, n); vertex(0, n); vertex(-n, 0); vertex(0, 0);}  
 if (d == 6 && lr == 1) {vertex(-n/2, n/2);vertex(-3*n/2, n/2);vertex(-n/2, -n/2);vertex(n/2, -n/2);}  
 if (d == 6 && lr == 0) {vertex(n/2, n/2); vertex(-n/2, n/2);vertex(-3*n/2, -n/2);vertex(-n/2, -n/2);}  
 if (d == 7 && lr == 1) {vertex(0, 0); vertex(-n, 0); vertex(0, -n); vertex(n, -n);}  
 if (d == 7 && lr == 0) {vertex(0, 0); vertex(-n, 0); vertex(-2*n, -n); vertex(-n, -n);}  
 if (d == 8 && lr == 1) {vertex(n/2, 0); vertex(-n/2, 0); vertex(n/2, -n); vertex(3*n/2, -n);} 
 if (d == 8 && lr == 0) {vertex(n/2, 0); vertex(-n/2, 0); vertex(-3*n/2, -n); vertex(-n/2, -n);}  
  
 endShape(CLOSE);  
 popMatrix();  
 }  
} 

Roterende parallellogrammen in 6 draaipunten.
De schets maakt gebruik van de subclass  "Paral_na" ,  en de superclass "Vormen"
 
Bekijk de roterende parallellogrammen op deze server.
 
 

Vormen[] vorm = new Vormen[8];  
void setup() {  
 size(960, 540);  
 float x = width/2;  
 float y = height/2;  
 float n = height/8;  
 vorm[0] = new Paral_na(n,0, 1, x-n, y, 0, color(255, 255, 0, 100));  
 vorm[1] = new Paral_na(n,1, 7, x+n, y, 0, color(255, 255, 0, 100));  
 vorm[2] = new Paral_na(n,1, 3, x-n, y, 0, color(255, 0, 0, 100));  
 vorm[3] = new Paral_na(n,0, 5, x+n, y, 0, color(100, 0, 255, 100));  
 vorm[4] = new Paral_na(n,1, 1, x-2*n, y-n,-45, color(0, 255, 0, 100));  
 vorm[5] = new Paral_na(n,0, 7, x+2*n, y-n, 45, color(0, 100, 255, 100));  
 vorm[6] = new Paral_na(n,0, 3, x-2*n, y+n, 45, color(255, 0, 200, 100));  
 vorm[7] = new Paral_na(n,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();  
 }  
}