u(t) is called 60 times per second.
t: Elapsed time in seconds.
S: Shorthand for Math.sin.
C: Shorthand for Math.cos.
T: Shorthand for Math.tan.
R: Function that generates rgba-strings, usage ex.: R(255, 255, 255, 0.5)
c: A 1920x1080 canvas.
x: A 2D context for that canvas.
You want something like for(c.width|=y=20;x.fillStyle=['blue','gold','red'][--y%3];)for(i=500;i--;)x.fillRect(z=680+i+y+C(y/3-2*t)*200,200+y*40+S(z/9-3*t)*18,4,4)
Tweaked colours and numbers a little: for(c.width|=y=27;x.fillStyle=['#47a','#ec2','#d66'][--y%3];)for(i=450;i--;)x.fillRect(z=680+i+y+C(y/4-4*t)*200,100+y*33+S(z/12-6*t)*18,6,7)
u(t) is called 60 times per second.
t: elapsed time in seconds.
c: A 1920x1080 canvas.
x: A 2D context for that canvas.
S: Math.sin
C: Math.cos
T: Math.tan
R: Generates rgba-strings, ex.: R(255, 255, 255, 0.5)