De class CirkelVorm met 4 rotatie modi.
//CirkelVorm is een class waarin de vormen rect en ellipse in een cirkel worden gerangschikt
class CirkelVorm {
float xpos; float ypos; float b; float l;
float diameter; float hoek; float snelh;
int rotatiemode; int aantal;
float teller;
color c;
//Argumenten van de constructor:
//1) x positie, 2) y positie, 3) vormlengte, 4) vormbreedte, 5) cirkelstraal,
//6) start draaihoek, 7) draaisnelheid, 8) rotatiemode, 9) aantal vormen, 10) kleur.
// rotatiemode: 1) assenstelsel, 2) x as, 3) y as, 4) Z as, dan moet de start draaihoek > 0 zijn
// 1 2 3 4 5 6 7 8 9 10
CirkelVorm(float xpos_,float ypos_,float l_,float b_,float d_,float hoek_,float snelh_,int rmod_,int aantal_,color c_) {
xpos = xpos_; ypos = ypos_;
b = b_; l = l_;
diameter = d_;
hoek = hoek_;
snelh = snelh_;
rotatiemode = rmod_;
aantal = aantal_;
c = c_;
}
void rechthoek() {
teller = teller + snelh;
for (int i = 0; i < 360; i+=360/aantal) {
float x = xpos + sin(radians(i))* diameter;
float y = ypos + cos(radians(i))* diameter;
pushMatrix();
translate(x, y);
if (rotatiemode == 1) rotate(radians(-i+teller+hoek));
if (rotatiemode == 2) rotateX(radians(-i+teller+hoek));
if (rotatiemode == 3) rotateY(radians(-i+teller+hoek));
if (rotatiemode == 4) {
rotateX(radians(hoek));
rotateZ(radians(-i+teller+hoek));
}
fill(c);
rectMode(CENTER);
rect(0, 0, l, b, 25);
popMatrix();
}
}
void ellips() {
teller = teller + snelh;
for (int i = 0; i < 360; i+=360/aantal) {
float x = xpos + sin(radians(i))* diameter;
float y = ypos + cos(radians(i))* diameter;
pushMatrix();
translate(x, y);
if (rotatiemode == 1) rotate(radians(-i+teller+hoek));
if (rotatiemode == 2) rotateX(radians(-i+teller+hoek));
if (rotatiemode == 3) rotateY(radians(-i+teller+hoek));
if (rotatiemode == 4) {
rotateX(radians(hoek));
rotateZ(radians(-i+teller+hoek));
}
fill(c);
ellipse(0, 0, l, b);
popMatrix();
}
}
}