INCLUDE canvas FULLSCREEN CONST xmax=WIDTH CONST ymax=HEIGHT LOCAL r, g, b, ra TYPE FLOATING r=0.0:g=0.0:b=0.0 CONST n=70 LOCAL x[n],y[n],l[n],dx[n],dy[n] TYPE FLOATING FOR i=1 TO n x[i]=RANDOM(xmax) y[i]=RANDOM(ymax) l[i]=RANDOM(xmax*.05)+25 dx[i]=.0025*l[i]*l[i] NEXT SUB Draw FOR i=0 TO ymax INK(0,0,255-i/ymax*255,255) LINE(0,i,xmax,i) NEXT FOR i=1 TO n x[i]=x[i]-dx[i] IF x[i]+1.25*l[i]<0 THEN x[i]=xmax y[i]=y[i]+RANDOM(8)-4 INCR r, 0.2:INCR g, 0.005:INCR b, 0.010 IF r>.5 THEN r=.02 IF g>.5 THEN g=.005 IF b>.5 THEN b=.01 FOR ra=1 TO l[i] INK(127+127*SIN(r*ra),127+127*SIN(g*ra),127+127*SIN(b*ra), 255) LINE(x[i]+ra,y[i]-ra,x[i]+ra,y[i]+ra) NEXT FOR ra=5 TO .3*l[i] LINE(x[i]+l[i]+ra,y[i]-ra,x[i]+l[i]+ra,y[i]+ra) NEXT INK(0,0,0,255) CIRCLE(x[i]+.25*l[i],y[i],.1*l[i],.1*l[i],TRUE) INK(255,255,0,255) CIRCLE(x[i]+.25*l[i],y[i],.06*l[i],.06*l[i],FALSE) NEXT END SUB CALLBACK(20, Draw) WAITKEY