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.
More correct version: x.fillStyle=R((X^Y)/(2**(s-1?0|Math.log2(s-1)+1:1))*255). It subtracts 1 from s because the maximum value the component of a coordinate can have is s - 1 (e.g. the maximum x value for a coordinate on a 1920x1080 display is 1919). It also uses a more reliable method for getting the bit count of a number, because apparently the one in the post is quite naive. I wrote this script to test different methods and found 3 perfect ones: https://ghostbin.com/6DkSj/raw
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)