var K = document.querySelector('canvas'),
{ random: R, PI, cos: C, sin: S, floor, atan2: A } = Math,
r = x => floor(R() * x),
+ id = p => p,
+ spn = rad => p => ({
+ x: p.x + rad * C(l),
+ y: p.y + rad * S(l)
+ }),
sqr = i => {
var p = pos(i)
x.fillRect(p.x, p.y, siz, siz)
x.fill()
},
lch = i => {
+
var p = pos(i)
x.beginPath()
x.lineWidth = 5
x.stroke()
},
hrt = i => {
+
var p = pos(i)
x.fillRect(p.x, p.y, siz, siz)
x.fill()
x.closePath()
},
- id = p => p,
- spn = rad => (p => ({
- x: p.x + rad * C(l),
- y: p.y + rad * S(l)
- })),
mov = i => {
+
i.x = i.x + spd * C(i.a)
i.y = i.y + spd * S(i.a)
if (i.x < 0 || i.x > 64) {
i.a = A(S(i.a), -C(i.a))
}
-
if (i.y < 0 || i.y > 64) {
i.a = A(-S(i.a), C(i.a))
}
},
ucl = i => i.c = i.c.map(c => (c + 5) % 256),
frm = t => {
+
window.requestAnimationFrame(frm)
var dt = t - l
a: R() * 2 * PI,
c: Array(3).fill(r(256))
})),
- S = [sqr, crc, hrt, chs, lch],
+ H = [sqr, crc, hrt, chs, lch],
P = [id, spn(5), spn(15)],
- draw = S[r(S.length)],
+ draw = H[r(H.length)],
pos = P[r(P.length)]
+
frm()
}
)()