9 vliegers h1 = n/2 h2 =n

 

9 vliegers met h1 = -n/2

 

 

 

 

 

 

header vlieger
De 9 draaipunten met h1 = n/2 en h2 = n
 
Vlieger                            terug naar de inleiding                                                          zie ook het voorbeeld  acht pijlen rond achthoek
 
argumenten van de constructor
Met de eerste drie argumenten van de constructor bepaal je de grootte en vorm van de vlieger
1) "n" is de lengte van de korte diagonaal
2) "h1" is de lengte van de top naar de korte diagonaal
3) "h2" is de lengte van de kort diagonaal naar de punt van de vlieger. Dus de lange diagonaal is h1+h2.
4) draaipunt d,   5) x positie,  6) y positie,  7) hoek,  8) kleur
 
met h1 =  h2 = n/2 is de vlieger een vierkant
met h1 = negatief ontstaat een naar beneden gerichte pijl
met h2 = negatief ontstaat een naar boven gerichte pijl
met h1 = h2 = n ontstaat een ruit
met h1 = h2 = sqrt(3*n*n/4); ontstaat een ruit met zijden en korte diagonaal = n
 
Dus je kan met de "Vlieger" class vliegers, vierkanten, ruiten en pijlen maken.


class Vlieger extends Vormen { 
 
  Vlieger(float n_, float h1_, float h2_, int d_, float x_, float y_, float hoek_, color c1_) { 
    super(); 
    n = n_;  
    h1 = h1_; 
    h2 = h2_; 
    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) {vertex(0, h2);vertex(-n/2, 0);vertex(0, -h1);vertex(n/2, 0);}      
    if (d == 1) {vertex(0, 0);vertex(-n/2, -h2);vertex(0, -(h1+h2));vertex(n/2, -h2); } 
    if (d == 2) {vertex(n/4, h2/2); vertex(-n/4, -h2/2);vertex(n/4, -(h2/2+h1));vertex(3*n/4, -h2/2);} 
    if (d == 3) {vertex(n/2, h2);vertex(0, 0);vertex(n/2, -h1); vertex(n, 0);}        
    if (d == 4) {vertex(n/4, h2+h1/2);vertex(-n/4, h1/2);vertex(n/4, -h1/2);vertex(3*n/4, h1/2);}     
    if (d == 5) {vertex(0, h1+h2);vertex(-n/2, h1);vertex(0, 0);vertex(n/2, h1);}       
    if (d == 6) {vertex(-n/4, h1/2+h2);vertex(-3*n/4, h1/2);vertex(-n/4, -h1/2);vertex(n/4, h1/2);}      
    if (d == 7) {vertex(-n/2, h2);vertex(-n, 0);vertex(-n/2, -h1);vertex(0, 0);}     
    if (d == 8) {vertex(-n/4, h2/2);vertex(-3*n/4, -h2/2);vertex(-n/4, -(h2/2+h1));vertex(n/4, -h2/2);}          
    endShape(CLOSE); 
    popMatrix(); 
  } 
}

 
In deze schets worden, mbv de class "Vlieger" ,een pijl, (vorm 0) twee vierkanten met zijden 2*a (vormen 1 en 2) en vier vliegers (vormen 3 t/m6) geconstrueerd.
De vormen draaien er vrolijk op los                       De schets maakt ook gebruik van de superclass ¨Vormen¨
zie ook de draaiende vormen op ruitjespapier
 

Vormen [] vorm; 
void setup() { 
  // fullScreen(); 
  size(780, 560); 
  float x = width/2; 
  float y = height/2; 
  float n = height/11; 
  vorm    = new Vormen[7]; 
  vorm[0] = new Vlieger(4*n,-2*n, 6*n, 1, x,   y+3*n, 0, color(255,255,0,100)); 
  vorm[1] = new Vlieger(4*n, 2*n, 2*n, 1, x,   y-n,    0, color(255,0,0,100)); 
  vorm[2] = new Vlieger(4*n, 2*n, 2*n, 1, x,   y-n,   0, color(0,0,255,100)); 
  vorm[3] = new Vlieger(2*n, 2*n, 3*n, 7, x-n, y,     0, color(0,255,0,100)); 
  vorm[4] = new Vlieger(2*n, 2*n, 3*n, 3, x+n, y,     0, color(0,0,255,100)); 
  vorm[5] = new Vlieger(2*n, 2*n, 3*n, 5, x,   y,    90, color(255,0,200,100)); 
  vorm[6] = new Vlieger(2*n, 2*n, 3*n, 5, x,   y,   -90, color(200,0,50,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 < 7; i++) 
  { 
    vorm[i].display(); 
  }   
  vorm[1].dpRotRe(vorm[1]); 
  vorm[2].dpRotLi(vorm[2]);   
  vorm[3].dpRotRe(vorm[3]); 
  vorm[4].dpRotLi(vorm[4]);   
  vorm[5].dpRotLi(vorm[5]); 
  vorm[6].dpRotRe(vorm[6]); 
} 
 
void keyPressed() {      
  if (key == 's') {     
    noLoop(); 
  }    
 
  if (key == 'r') {        
    loop(); 
  } 
}