zie de schets voor de code
 
 
 
 
 

header drie 2na

De 7 draaipunten

 

rechthoekige driehoeken afgeleid van Drieh_an                   terug naar de inleiding

 a = sqrt(2*n*n);

Je kan met "Drieh_an" andere rechthoekige driehoeken samenstellen, zie de tabel:
Het eerste argument in de constructor is de lengte van de schuine zijde.

basis  
 eerste argument
in de constructor
  hoogte   driehoek                                                                
n  
0.5*a
  0.5*n   blauw   basis: n, schuine zijde: 0.5*a                                
a    n   0.5*a   geel   basis: a, schuine zijde: n
2*n    a   n   paars   basis: 2*n, schuine zijde: a
2*a    2*n   a   groen   basis: 2*a, schuine zijde: 2*n
4*n    2*a   2*n   rood   basis: 4*n, schuine zijde: 2*a
                                                                   
3*n    1.5*a   1.5*n       basis: 3*n, schuine zijde: 1.5*a
 
De gele (an), paarse (2na) en groene (2a2n) driehoeken zijn de tangram driehoeken
 
Je kan de rechthoekige driehoeken ook samenstellen met de class "Drieh_nh"
De basis (eerste argument van de constructor) en de hoogte (tweede argument van de constructor zijn bekend.
 
Voorbeeld waarin de driehoeken zijn samengesteld mbv "Drieh_an"
De schets maakt ook gebruik van de superclass "Vormen"
 
 

Vormen [] vorm; 
 
void setup()  { 
size(800,800); 
float x = width/2; 
float y = height/2; 
float n = height/15;  
float a = sqrt(2*n*n); 
vorm = new Vormen[5]; 
vorm[0] = new Drieh_an(a/2, 3, x, y-(3*a/2+3*n),-45,color(0,0,255,100)); 
vorm[1] = new Drieh_an(n,   3, x, y-(a+3*n),     45,color(255,255,0,100)); 
vorm[2] = new Drieh_an(a,   3, x, y-(a+2*n),    -45,color(255,0,255,100)); 
vorm[3] = new Drieh_an(n*2, 3, x, y-2*n,         45,color(0,255,0,100)); 
vorm[4] = new Drieh_an(a*2, 3, x, y,            -45,color(255,0,0,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 < 5; i++) 
  { 
  vorm[i].display(); 
  }  
  vorm[0].dpRotLi(vorm[0]); 
  vorm[1].dpRotRe(vorm[1]); 
  vorm[2].dpRotLi(vorm[2]); 
  vorm[3].dpRotRe(vorm[3]); 
  vorm[4].dpRotLi(vorm[4]); 
} 
 
void keyPressed() {     
   if (key == 's') {    
    noLoop();    
  }     
   if (key == 'r') {       
    loop();    
  }    
 }