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.
Original idea involved mouse controls, but I was unlucky golfing it. Here is source for you to try golf&play c.width=568 t||(a=T=0,X=Y=99,onmousemove=e=>a=T?a:Math.atan2(e.y-Y,e.x-X),onclick=e=>T||=16) with(x)beginPath(translate(X-=C(a)*T,Y-=S(a)*T)),rotate(a),rect(t%1*9+9,-4,99,T?T--&0:8),fill(arc(0,0,9,0,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)