awilum.ru
Статьи Курсы Об авторе

Рисование кривых Безье в Canvas

Кривые Безье — это математические кривые, которые широко используются в компьютерной графике для создания плавных и красивых кривых. Они были впервые разработаны французским инженером Пьером Безье в 1960-х годах для описания автомобильных кузовов в компании Renault. Кривые Безье могут быть различных порядков, включая линейные (порядка 1), квадратичные (порядка 2), кубические (порядка 3) и т. д.

Для рисования кривых Безье в Canvas доступны следующие методы: quadraticCurveTo() и bezierCurveTo()

Рисование с помощью метода quadraticCurveTo()

Этот метод добавляет кривую Безье к текущему пути, определяемую начальной точкой пути (текущей позицией), одной контрольной точкой (cp1x, cp1y) и конечной точкой (x, y). Это квадратичная кривая Безье.

Синтаксис:

quadraticCurveTo(cpx, cpy, x, y)

Параметры:

cpx Координата оси X контрольной точки.
cpy Координата оси Y контрольной точки.
x Координата X новой позиции курсора.
y Координата Y новой позиции курсора.

Пример:

ctx.beginPath();
ctx.moveTo(50, 50); // Начальная точка

// Квадратичная кривая Безье с одной контрольной точкой
ctx.quadraticCurveTo(100, 150, 150, 50);

ctx.stroke(); // Рисуем контур пути

Результат:

Рисование с помощью метода bezierCurveTo()

Этот метод добавляет кривую Безье к текущему пути, определяемую начальной точкой пути (текущей позицией), двумя контрольными точками (cp1x, cp1y) и (cp2x, cp2y) и конечной точкой (x, y). Это кубическая кривая Безье.

Синтаксис:

bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)

Параметры:

cp1x, cp1y Координата первой контрольной точки по оси X и Y.
cp2x, cp2y Координата второй контрольной точки по оси X и Y.
x Координата X конечной позиции курсора.
y Координата Y конечной позиции курсора.

Пример:

ctx.beginPath();
ctx.moveTo(50, 50); // Начальная точка
ctx.bezierCurveTo(100, 100, 150, 150, 200, 50); // Кубическая кривая Безье
ctx.stroke(); // Рисуем контур пути

Результат:

Cтатьи про Canvas

Хотите освоить JavaScript и стать востребованным разработчиком?
Присоединяйтесь к курсу JavaScript Базовый уровень прямо сейчас!
Изучите основы и продвинутые концепции, создавайте интерактивные веб-приложения и воплотите свои идеи в реальности. Не упустите шанс стать экспертом в мире разработки – начните свой путь прямо сейчас!
Обнаружили ошибку в этой статье? Хотите уточнить, обновить или добавить что-то?
Все мои статьи доступны для редактирования на GitHub. Буду благодарен за любое улучшение или исправление!