Spec-Zone.ru › Web APIs

CanvasRenderingContext2D: метод bezierCurveTo()

Базовая поддержка Широко доступен

Эта функция хорошо поддерживается многими устройствами и версиями браузеров. Она доступна во всех браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Метод CanvasRenderingContext2D.bezierCurveTo() API Canvas 2D добавляет кубическую кривую Безье к текущей подтраектории. Он требует три точки: две первые — контрольные точки, а третья — конечная точка. Начальная точка — последняя точка в текущей траектории, которую можно изменить с помощью moveTo() перед созданием кривой Безье.

Синтаксис

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

Параметры

cp1x

Координата x первой контрольной точки.

cp1y

Координата y первой контрольной точки.

cp2x

Координата x второй контрольной точки.

cp2y

Координата y второй контрольной точки.

x

Координата x конечной точки.

y

Координата y конечной точки.

Возвращаемое значение

None (undefined).

Примеры

Как работает bezierCurveTo

В этом примере показано, как рисуется кубическая кривая Безье.

HTML

<canvas id="canvas"></canvas>

JavaScript

// Define canvas and context
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");

// Define the points as {x, y}
let start = { x: 50, y: 20 };
let cp1 = { x: 230, y: 30 };
let cp2 = { x: 150, y: 80 };
let end = { x: 250, y: 100 };

// Cubic Bézier curve
ctx.beginPath();
ctx.moveTo(start.x, start.y);
ctx.bezierCurveTo(cp1.x, cp1.y, cp2.x, cp2.y, end.x, end.y);
ctx.stroke();

// Start and end points
ctx.fillStyle = "blue";
ctx.beginPath();
ctx.arc(start.x, start.y, 5, 0, 2 * Math.PI); // Start point
ctx.arc(end.x, end.y, 5, 0, 2 * Math.PI); // End point
ctx.fill();

// Control points
ctx.fillStyle = "red";
ctx.beginPath();
ctx.arc(cp1.x, cp1.y, 5, 0, 2 * Math.PI); // Control point one
ctx.arc(cp2.x, cp2.y, 5, 0, 2 * Math.PI); // Control point two
ctx.fill();

Результат

В этом примере контрольные точки красные, а начальная и конечная точки — синие.

Простая кривая Безье

В этом примере рисуется простая кривая Безье с помощью bezierCurveTo().

HTML

<canvas id="canvas"></canvas>

JavaScript

Кривая начинается в точке, заданной moveTo(): (30, 30). Первая контрольная точка находится в (120, 160), а вторая — в (180, 10). Кривая заканчивается в (220, 140).

const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");

ctx.beginPath();
ctx.moveTo(30, 30);
ctx.bezierCurveTo(120, 160, 180, 10, 220, 140);
ctx.stroke();

Результат

Спецификации

Спецификация
HTML
# dom-context-2d-beziercurveto-dev

Совместимость с браузерами

Десктопные Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
bezierCurveTo 1 12 1.5 11.6 2 18 4 12 1 1.0 4.4

См. также

  • Интерфейс, определяющий этот метод: CanvasRenderingContext2D
  • Кривая Безье

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/bezierCurveTo

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API