De 7 draaipunten
rechthoekige driehoeken afgeleid van Drieh_an ga naar de roterende driehoeken 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 zie tangram haas en renner
Je kan de rechthoekige driehoeken ook samenstellen met de class "Drieh_nh"
De lengte van de schuine zijde is het eerste argument van de constructor
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();
}
}