Как нарисовать волну на Canvas?

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

от dayna , в категории: Другие , 8 месяцев назад

Как нарисовать волну на Canvas?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от amaya_bahringer , 8 месяцев назад

@dayna 

Вы можете нарисовать волну на Canvas, используя методы рисования moveTo, lineTo и quadraticCurveTo. Вот небольшой пример:

 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
26
27
28
29
30
// Получаем контекст Canvas
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');

// Устанавливаем ширину и высоту Canvas
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;

// Настраиваем начальную позицию и параметры рисования волны
let x = 0;
const y = canvas.height / 2;
const frequency = 40;
const amplitude = 50;
const speed = 0.1;

// Рисуем волну
ctx.beginPath();
ctx.fillStyle = '#0095DD';
ctx.moveTo(x, y);

for (let i = 0; i < canvas.width; i++) {
  const wave = y + Math.sin(x / frequency) * amplitude;
  ctx.quadraticCurveTo(x, wave, x + speed, wave);
  x += speed;
}

ctx.lineTo(canvas.width, canvas.height);
ctx.lineTo(0, canvas.height);
ctx.closePath();
ctx.fill();


Этот код создаст горизонтальную волну, которая потомней станет градиентом в строке ctx.fillStyle = '#0095DD'.Вы можете изменять значения frequency, amplitude и speed, чтобы изменить волну.