Круги на черном поле
Опубликовано 19 апреля, 2024 - 11:13 пользователем Верменич Михаил
В данной сцене создается иллюзия движения. Достигается это за счет следующей части кода:
for (let i = 0; i < 2; i++) { // каждый круг состоит из двух полукругов //... let margin = Math.random() * Math.PI; // Случайный сдвиг, от которого и рисуются оба полукруга ctx.arc(x, y, rad, margin + Math.PI * i, margin + Math.PI * (i + 1), false); // Каждый полукруг имеет свой цвет ctx.fillStyle = "#" + Math.floor(Math.random() * 16777215).toString(16); //... }
В каждом объекте Ball при создании записывается значение circles, которое означает количество вложенных кругов:
this.circles = Math.floor(Math.random() * 20)
Отрисовываются они следующим образом:
for (let i = this.circles; i > 1; i--) { // Для каждого вложенного круга вызывается функция его отрисовки // Радиус вложенного круга зависит от его номера circleRad(this.x, this.y, this.radius * i / this.circles); }
Изменение параметров
Скорость:
const speedX = (Math.random() - 0.5) * 1; const speedY = (Math.random() - 0.5) * 1;
Количество кругов:
let n = 50; for (let i = 0; i < n; i++) {...}