Каким образом реализовать эффект распыления на Canvas?

Пользователь

от frederique , в категории: Компьютерные технологии , год назад

Каким образом реализовать эффект распыления на Canvas?

Facebook Vk Ok Twitter Telegram Whatsapp

1 ответ

Пользователь

от julien.ziemann , год назад

@frederique 

Для реализации эффекта распыления на Canvas необходимо создать функцию, которая будет генерировать случайные координаты точек на холсте. Затем, для каждой точки нужно задать случайный радиус и цвет, а затем нарисовать круг с этими параметрами на холсте.


Пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function drawParticles(ctx, numParticles, centerX, centerY, maxRadius, colors) {
  for (let i = 0; i < numParticles; i++) {
    const radius = Math.random() * maxRadius;
    const color = colors[Math.floor(Math.random() * colors.length)];
    const angle = Math.random() * Math.PI * 2;
    const x = centerX + Math.sin(angle) * radius;
    const y = centerY + Math.cos(angle) * radius;

    ctx.beginPath();
    ctx.arc(x, y, radius, 0, Math.PI * 2);
    ctx.fillStyle = color;
    ctx.fill();
  }
}

// Пример использования функции
const canvas = document.querySelector('canvas');
const ctx = canvas.getContext('2d');
const centerX = canvas.width / 2;
const centerY = canvas.height / 2;
const numParticles = 100;
const maxRadius = 10;
const colors = ['#ff0000', '#00ff00', '#0000ff', '#fff000', '#00fff0', '#ff00ff'];

drawParticles(ctx, numParticles, centerX, centerY, maxRadius, colors);


В данном примере функция drawParticles принимает следующие параметры:

  • ctx - контекст холста;
  • numParticles - количество точек для генерации;
  • centerX и centerY - координаты центра области, в которой будут располагаться точки;
  • maxRadius - максимальный радиус точки;
  • colors - массив цветов, из которых будет выбираться случайный цвет для каждой точки.


Для каждой точки генерируются случайные координаты, радиус и цвет, а затем нарисованный круг заполняется выбранным цветом на холсте.