/**
comet - The day 16 door for my 2010 Advent calendar
by Guru
*/
PVector stars[];
int STARS = 100;
void setup() {
size(300,300,P2D);
stars = new PVector[STARS];
for ( int i =0; i < STARS; i++) {
stars[i] = new PVector( random( width ), random( height ), random( 10 ));
}
frameRate( 25 );
smooth();
}
void draw() {
background(0);
starfield();
fill(200,200,0);
stroke(255,255,0);
strokeWeight(2);
beginShape();
vertex( 200,150);
vertex( 50, 130);
vertex( 60, 140);
vertex( 50, 150);
vertex( 60, 160);
vertex( 50, 170);
endShape(CLOSE);
int mx = 200;
int my = 150;
beginShape();
for( int i =0; i < 12; i++) {
float r = ( i % 2 == 1 ? 50 : 25 );
vertex( mx + cos( radians( i * 30)) * r, my + sin( radians( i*30)) * r );
}
endShape(CLOSE);
}
void starfield() {
strokeWeight( 2 );
for ( int i =0; i < STARS; i++) {
stroke( stars[i].z * 25 );
point( stars[i].x, stars[i].y );
stars[i].x -= stars[i].z;
if (stars[i].x < 0) {
stars[i] = new PVector( width, random(height), sqrt(random( 100 )));
}
}
}