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.
Longer, but better (153): for(i=2;i--;)x.beginPath(x.fillStyle=R(i?w=255-(s=C(t*2)*127+128):s,0,i?s:w))|x.arc(960+80*S(i?π=t*5:n),540+80*C(i?n=π+3.14:π),80-30*S(t*8),0,7)|x.fill()
Inspired by the "second phase" in http://slicker.me/javascript/yinyang.htm. Thank you to Joey, Veubeke, and Athos from Discord for the last ~100 chars golf (I still golfed it from 480 chars to 240 though :P)
I don't feel comfortable owning your work just because I could golf it though. I just put them as remixes but I can delete them if you want and you can repost it I guess (I don't use discord, bummer, maybe I should?).
I also feel uncomfortable owning your Debian logo. But that's how things go on Dwitter these days! u/lionleaf was talking about a remix-in-comments feature. Perhaps this is part of the motivation.
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)