Schets met achthoek en acht driehoeken
hn = (n+a)/2 is de straal van de binnencirkel van de achthoek en hoogte van de gelijkzijdige driehoek
De schuine zijde van de driehoek dan is de straal van de binnencirkel van de achthoek
Bekijk de roterende driehoeken
Met toetsen 1 t/m 6 veranderen de draaipunten, met toets 0 wordt de achthoek in- en uitgeschakeld
De schets maakt gebruik van de classes Vhoek_n8, Drieh_nh, en de superclass Vormen
Vormen vorm[];
int dp = 0;
int een = 1;
void setup() {
// fullScreen();
size(880, 660);
float x = width/2;
float y = height/2;
float n = height/4;
float a = sqrt(2*n*n);
float hn = (n+a)/2; //de hoogte van de driehoek
vorm = new Vormen[9];
vorm[0] = new Vhoek_n8(n*een, 0, x, y, 0, color(255, 255, 0, 100));
vorm[1] = new Drieh_nh(n, hn, 1+dp, x-(a/2+n/2), y-n/2, 90, color(255, 0, 0, 100));
vorm[2] = new Drieh_nh(n, hn, 5-dp, x-(a/2+n/2), y-n/2, 135, color(200, 0, 100, 100));
vorm[3] = new Drieh_nh(n, hn, 1+dp, x+n/2+a/2, y-n/2, -135, color(200, 200, 50, 100));
vorm[4] = new Drieh_nh(n, hn, 5-dp, x+n/2+a/2, y-n/2, -90, color(200, 200, 50, 100));
vorm[5] = new Drieh_nh(n, hn, 1+dp, x+a/2+n/2, y+n/2, -90, color(255, 0, 0, 100));
vorm[6] = new Drieh_nh(n, hn, 5-dp, x+(a/2+n/2), y+n/2, -45, color(200, 0, 100, 100));
vorm[7] = new Drieh_nh(n, hn, 5-dp, x-(a/2+n/2), y+n/2, 90, color(200, 200, 50, 100));
vorm[8] = new Drieh_nh(n, hn, 1+dp, x-(a/2+n/2), y+n/2, 45, color(200, 200, 50, 100));
}
void draw() {
background(#E6FBFF);
for (int i = 0; i < 9; i++)
{
vorm[i].display();
}
if (key == 's') {
}
else
{
vorm[0].dpRotRe(vorm[0]);
vorm[1].dpRotRe(vorm[1]);
vorm[2].dpRotLi(vorm[2]);
vorm[3].dpRotRe(vorm[3]);
vorm[4].dpRotLi(vorm[4]);
vorm[5].dpRotRe(vorm[5]);
vorm[6].dpRotLi(vorm[6]);
vorm[7].dpRotLi(vorm[7]);
vorm[8].dpRotRe(vorm[8]);
}
}
void keyPressed() {
if (key == '0') {
if (een == 0)
{
een = 1;
}
else
{
een = 0;
}
setup();
}
if (key == '1') {
dp = 0;
setup();
}
if (key == '2') {
dp = 1;
setup();
}
if (key == '3') {
dp = 2;
setup();
}
if (key == '4') {
dp = 3;
setup();
}
if (key == '5') {
dp = 4;
setup();
}
if (key == '6') {
dp = 5;
setup();
}
}