/** 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 ))); } } }