De 9 draaipunten
voorbeelden vierkanten met de "Rechthoek" class Bekijk de roterende vierkanten terug naar de inleiding
vierkant met de zijden a a = sqrt(2*n*n);
Je kan vierkanten met andere zijde maken door in "Rechthoek" in de constructor de eerste twee argumenten te vervangen door:
Zo krijg je leuke effecten als je andere vormen rond zo'n rechthoek laat roteren
a = sqrt(2*n*n); | basis rechthoekige driehoek | Drieh_an | ||||
b = sqrt(5*n*n/4); | schuine zijde gelijkbenige driehoek | Drieh_nh | ||||
hn = sqrt(3*n*n/4); | hoogte gelijkzijdige driehoek | Drieh_nh | ||||
hn = sqrt(3*n*n/4); | hoogte trapezium | Trap_2nn | ||||
hna = sqrt(a*a-n*n/4); | hoogte gelijkbenige driehoek | Drieh_nh |
Opm: Alle gelijkbenige en gelijkzijdige driehoeken worden samengesteld met "Drieh_nh"
schets met vierkanten rond de rechthoekige driehoek "Drieh_an"
De schets maakt gebruik van objectmethodes van de superclass "Vormen" , en objecten van de subclasses "Drieh_an" en "Rechthoek"
Bekijk de roterende vierkanten
Vormen vierk1;
Vormen vierk2;
Vormen vierk3;
Vormen driehan;
void setup() {
size(960,540);
//fullScreen();
float x = width/2;
float y = height/2;
float n = height/5;
float a = sqrt(2*n*n);
driehan = new Drieh_an(n, 6, x, y, 0, color(0,255,0, 100));
vierk1 = new Rechthoek(n,n, 7, x-a/2, y, 45, color(255,255,0,100));
vierk2 = new Rechthoek(n,n, 1, x+a/2, y,-45, color(255,0,0,100));
vierk3 = new Rechthoek(a,a, 4, x, y, 0, color(0,0,255,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);
vierk1.display();
vierk2.display();
vierk3.display();
driehan.display();
vierk1.dpRotLi(vierk1);
vierk2.dpRotRe(vierk2);
}
void keyPressed() {
if (key == 's') {
noLoop();
}
if (key == 'r') {
loop();
}
}
schets met vierkanten rond een gelijkbenige driehoek met schuine zijde b.
De hoogte van de driehoek is n, dus het tweede argument in de class "drieh_nh" is n
Bekijk de roterende vierkanten met de lengte van de zijde b = sqrt(5*n*n/4);
Vormen vierk1;
Vormen vierk2;
Vormen vierk3;
Vormen driehnh;
void setup() {
size(960,540);
float x = width/2;
float y = height/2;
float n = height/4;
float b = sqrt(5*n*n/4);
driehnh = new Drieh_nh(n,n, 5, x, y, 0, color(0,255,0, 100));
vierk1 = new Rechthoek(b,b, 7, x-n, y, 26.58,color(255,255,0,100));
vierk2 = new Rechthoek(b,b, 1, x, y, -26.58,color(255,0,0,100));
vierk3 = new Rechthoek(n,n, 5, x, y, 0, color(0,0,255,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);
vierk1.display();
vierk2.display();
vierk3.display();
driehnh.display();
vierk1.dpRotRe(vierk1);
vierk2.dpRotLi(vierk2);
}
void keyPressed() {
if (key == 's') {
noLoop();
}
if (key == 'r') {
loop();
}
}
schets met vierkanten rond een gelijkzijdige driehoek
De gelijkzijdige driehoek wordt samengesteld met de class "Drieh_nh"
Het tweede argument in de constructor is de hoogte hn = sqrt(3*n*n/4); van de gelijkzijdige driehoek n
De in hun draaipunten roterende vierkanten
Vormen [] vorm;
void setup() {
size(780, 560);
//fullScreen();
float x = width/2;
float y = height/2;
float n = height/5;
float hn = sqrt(3*n*n/4);
vorm = new Vormen[5];
vorm[0] = new Drieh_nh(n, hn, 6, x, y, 0, color(0, 255, 0, 100));
vorm[1] = new Rechthoek(hn,hn, 5, x, y-hn,0, color(255, 255, 0, 100));
vorm[2] = new Rechthoek(hn,hn, 3, x, y-hn,0, color(255, 0, 0, 100));
vorm[3] = new Rechthoek(n, n, 5, x-n/2, y, 0, color(0, 0, 255, 100));
vorm[4] = new Rechthoek(n, n, 3, x+n/2, y, 0, color(0, 0, 255, 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[1].dpRotLi(vorm[1]);
vorm[2].dpRotRe(vorm[2]);
vorm[4].dpRotLi(vorm[4]);
vorm[3].dpRotRe(vorm[3]);
}
void keyPressed() {
if (key == 's') {
noLoop();
}
if (key == 'r') {
loop();
}
}