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.
This is a breadth-first traversal of a binary tree, one frame at a time. The tree is maintained in a 1D array (2n+i notation) that I simply iterate left-to-right. The loop does double-duty for drawing the current node and inserting the children. The shape has four corners so the loop runs four times and inserts four children: 2n+0, 2n+1, 2n+2, 2n+3. My mind was blown when I realized no extra code was needed to prevent the adding of the extra children because the first two children of the next iteration will overwrite them!
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)