Eenvoudig voorbeeld met roterende en bewegende poppetjes terug naar de inleiding
het poppetje is 9 vakjes hoog met h = n/9 is het poppetje 1 vakje hoog Het middelste poppetje, pop2 draait om zijn as en is 2 vakjes hoog
pop1 beweegt van links naar rechts en is 4 vakjes hoog. Pop3 is een vakje hoog
De bewegende poppetjes op ruitjespapier
Zie voor het ruitjespapier de class "Ruitjes".
Pop pop1;
Pop pop2;
Pop pop3;
Ruitjes ruit;
float x;
float y;
float n;
float h;
float i;
void setup() {
size(960, 540);
// fullScreen();
x = width/2;
y = height/2;
n = height/10;
h = n/9;
ruit = new Ruitjes(n, x, y);
pop1 = new Pop(x-5*n, y, 4*h);
pop2 = new Pop(0, 0, 2*h);
pop3 = new Pop(x+5*n, y, h);
}
void draw() {
background(#E6FBFF);
ruit.display();
pop1.display();
pop1.xLiRe();
pushMatrix();
translate(x, y);
rotate(radians(i));
i = i + 1;
if (i > 360) i = 1;
pop2.display();
popMatrix();
pop3.display();
}
de class Pop
class Pop {
float x;
float y;
float n;
float xsnelhLi = 1;
Pop(float x_, float y_, float n_) {
x = x_;
y = y_;
n = n_;
}
void display()
{
strokeWeight(2);
fill(255, 255, 0);
ellipse(x, y-4*n, 2*n, 2*n); //hoofd
rect(x-n, y-3*n, 2*n, 3*n); //lichaam
rect(x-2*n, y-3*n, n, 3*n); //arm li
rect(x+n, y-3*n, n, 3*n); //arm re
rect(x-n, y+2*n, n/2, 2*n); //li been
rect(x+n/2, y+2*n, n/2, 2*n); //Re been
quad(x-2*n, y+2*n, x-n, y, x+n, y, x+2*n, y+2*n); //jurk
}
void xLiRe() {
x = x + xsnelhLi;
if ((x > width) || (x < 0)) {
xsnelhLi = xsnelhLi * -1;
}
}
}