vliegers 9

9 vliegers h1 = n/2 h2 =n

 

vliegers 9 h1

9 vliegers met h1 = -n/2

 

vlieger schets2

 

 

vlieger schets3

 

vlieger schets1

 

vlieger schets4

 

vlieger schets0

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 = -n/2 en h2 = n ontstaat een naar beneden 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 de Vlieger class maakt de Vierkant en Ruit class overbodig


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(); 
  } 
}