xxxxxxxxxx
PVector pos;
PVector spd;
float t = 0;
void setup() {
size(400, 600);
pos = new PVector(width/2, height/2);
spd = PVector.random2D();
spd.mult(1);
}
void draw() {
//background(#59a232);
ellipse(pos.x, pos.y, 20, 20);
translate(pos.x, pos.y);
ellipse(spd.x*10, spd.y*10, 10, 10);
pos.add(spd);
t += .01;
float deg = map(noise(t), 0, 1, -20, 20);
spd.rotate(radians(deg));
rotate(spd.heading());
int numCircs = 20;
//taper each circle so the tail gets smaller towards the end
for (int circCount = 0; circCount < numCircs; circCount++) {
float diam = map(circCount, 0, numCircs, 25, 1);
translate(10, 0);
rotate( radians(deg) );
ellipse(0, 0, diam, diam);
}
}