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
 
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.
 
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, twee vierkanten, twee ruiten en twee vliegers geconstrueerd.
De vormen draaien er vrolijk op los
 

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