Flower of Life Canvas
((
d = document,
b = d.body,
rad = (innerWidth * 1.9) / 6,
theta = 0,
thetaSpeed = 0.03,
cx = innerWidth / 4,
cy = innerHeight / 4,
ox = 0,
oy = 0,
offTheta,
x, y, ang, step, blur,
_
) => {
Object.assign(b.style, {
background: 'black',
margin: 0
})
blur = Object.assign(d.createElement`canvas`, {
width: innerWidth * 2,
height: innerHeight * 2
}).getContext`2d`
with (Math) {
with (b.appendChild(
Object.assign(d.createElement`canvas`, {
width: innerWidth * 2,
height: innerHeight * 2
})
).getContext`2d`) {
Object.assign(canvas.style, {
width: '100%',
height: '100%'
})
onresize = () => {
blur.canvas.width = canvas.width = innerWidth * 2
blur.canvas.height = canvas.height = innerHeight * 2
rad = (innerWidth * 2.5) / 6
cx = innerWidth
cy = innerHeight
fillStyle = '#000'
fillRect(0, 0, canvas.width, canvas.height)
}
onresize()
step = (PI * 2) / 6
_ = t => {
ang = ~~(t / 500) % 7
globalAlpha = 0.23
fillStyle = '#fff'
if (ang > 0) {
offTheta = step * ang
ox = rad * cos(offTheta)
oy = rad * sin(offTheta)
} else {
ox = 0
oy = 0
}
for (i = 0; i < 20; i++) {
x = ox + cx + rad * cos(theta)
y = oy + cy + rad * sin(theta)
theta += thetaSpeed
fillRect(x, y, 4, 4)
}
blur.drawImage(canvas, 0, 0)
globalAlpha = 0.05
drawImage(blur.canvas, 0, 2)
requestAnimationFrame(_)
}
_()
}
}
})()
Speed coded animated flower of life on canvas