/** * Stars * @module src/utility/stars.js */ export default function Stars() { var canvas = document.createElement("canvas"), ctx = canvas.getContext("2d"); document.body.appendChild(canvas); canvas.style.width = "100%"; canvas.style.height = "100%"; canvas.style.position = "absolute"; canvas.style.top = "0px"; canvas.style.left = "0px"; canvas.style.zIndex = -1; document.body.addEventListener("resize", go); document.body.parentNode.style.backgroundColor = "black"; ctx.strokeStyle = "white"; var s = Math.sin, c = Math.cos; go(); function ri(n) { return Math.random() * n; } function rr(a, b) { return (b - a) * Math.random() + a; } function go() { var w = (canvas.width = window.innerWidth); var h = (canvas.height = window.innerHeight); ctx.clearRect(0, 0, w, h); var n = Math.sqrt(w * h) | 0; while (n--) { var x = ri(w); var y = ri(h); var r0 = rr(0, 1); var r1 = rr(0, 1); var r2 = rr(0, 1); var t0 = ri(2 * Math.PI); var t1 = ri(2 * Math.PI); var t2 = ri(2 * Math.PI); var x0 = x + c(t0) * r0; var y0 = y + s(t0) * r0; var x1 = x + c(t1) * r1; var y1 = y + s(t1) * r1; var x2 = x + c(t2) * r2; var y2 = y + s(t2) * r2; ctx.beginPath(); ctx.moveTo(x, y); ctx.bezierCurveTo(x0, y0, x1, y1, x2, y2); var color = rr(0, 255) | 0; ctx.strokeStyle = "rgb(" + color + "," + color + "," + color + ")"; ctx.stroke(); } } }