Галактика

Отрисовка демосцены происходит в функции play().

Точки распределены с помощью параметрическоко уравнения окружности в виде спирали,коэффициент t при cos() задает ширину, а коэффициент t/4 при sin() задает высоту, если добавить к коэффициентам С, то спираль будет отдалятся от центра. Количество точек зависит от шага t, t меняется в промежутке от минимального размера спирали до максимального по ширине.

Переменная С задает скорость вращения и нужна для работы анимации.

        C+=0.005;
 
        for(let t = 50; t < W/2; t+=0.2){
            ctx.fillStyle = 'red';
 
          ctx.beginPath();
          let x = t*Math.cos(t*t+C);
          let y = t/4*Math.sin(t*t+C);
          ctx.arc(x+W/2, y+H/2, 1, 0, 2*Math.PI);
          ctx.fill();
        }