paral 2na header

9 parallellogrammen: 2 en 6 rotatie 90 graden
parallelogram 1 en 5 rotatie -45 graden

 

9 parallellogrammen: 2 en 6 rotatie 90 graden
parallelogram 1 en 5 rotatie -45 graden
 
 
 
 
 
 
 
 
Zie de schets voor de code
 
 
 
 

                                           draaipunten 0 t/m 8

 

Parallellogram, "Paral_2na"                                 terug naar de inleiding

basis = 2n, 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_2na extends Vormen { 
Paral_2na(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/2, n/2); vertex(-3*n/2, n/2); vertex(-n/2, -n/2); vertex(3*n/2, -n/2);}  
 if (d == 1 && lr == 1) {vertex(2*n, 0); vertex(0, 0); vertex(n, -n); vertex(3*n, -n);}  
 if (d == 2 && lr == 1) {vertex(3*n/2, n/2);vertex(-n/2, n/2); vertex(n/2, -n/2); vertex(5*n/2, -n/2);}  
 if (d == 3 && lr == 1) {vertex(n, n); vertex(-n, n); vertex(0, 0); vertex(2*n, 0);}  
 if (d == 4 && lr == 1) {vertex(0, n); vertex(-2*n, n); vertex(-n, 0); vertex(n, 0);}  
 if (d == 5 && lr == 1) {vertex(-n, n); vertex(-3*n, n); vertex(-2*n, 0); vertex(0, 0);}  
 if (d == 6 && lr == 1) {vertex(-n/2, n/2); vertex(-5*n/2, n/2); vertex(-3*n/2, -n/2);vertex(n/2, -n/2);}  
 if (d == 7 && lr == 1) {vertex(0, 0); vertex(-2*n, 0); vertex(-n, -n); vertex(n, -n);}  
 if (d == 8 && lr == 1) {vertex(n, 0); vertex(-n, 0); vertex(0, -n); vertex(2*n, -n);}  
 if (d == 0 && lr == 0) {vertex(3*n/2, n/2);vertex(-n/2, n/2); vertex(-3*n/2, -n/2);vertex(n/2, -n/2);}  
 if (d == 1 && lr == 0) {vertex(2*n, 0); vertex(0, 0); vertex(-n, -n); vertex(n, -n);}  
 if (d == 2 && lr == 0) {vertex(5*n/2, n/2);vertex(n/2, n/2); vertex(-n/2, -n/2); vertex(3*n/2, -n/2);}  
 if (d == 3 && lr == 0) {vertex(3*n, n); vertex(n, n); vertex(0, 0); vertex(2*n, 0);}  
 if (d == 4 && lr == 0) {vertex(2*n, n); vertex(0, n); vertex(-n, 0); vertex(n, 0);}  
 if (d == 5 && lr == 0) {vertex(n, n); vertex(-n, n); vertex(-2*n, 0); vertex(0, 0);}  
 if (d == 6 && lr == 0) {vertex(n/2, n/2); vertex(-3*n/2, n/2);vertex(-5*n/2, -n/2);vertex(-n/2, -n/2);}  
 if (d == 7 && lr == 0) {vertex(0, 0); vertex(-2*n, 0); vertex(-3*n, -n); vertex(-n, -n);}  
 if (d == 8 && lr == 0) {vertex(n, 0); vertex(-n, 0); vertex(-2*n, -n); vertex(0, -n);}  
 endShape(CLOSE);  
 popMatrix();  
 }  
}
 
acht roterende parallellogrammen. De schets maakt ook gebruik van de subclass ,  "Paral_2na" en de superclass  "Vormen"
 
De roterende parallellogrammen te zien op deze server
 
 

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