CanvasRenderingContext2D: метод ellipse()
Базовая Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Метод CanvasRenderingContext2D.ellipse() API холста 2D добавляет эллиптическую дугу к текущей подтраектории.
Синтаксис
ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle) ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, counterclockwise)
Метод ellipse() создает эллиптическую дугу, центрированную в точке (x, y) с радиусами radiusX и radiusY. Траектория начинается в точке startAngle и заканчивается в точке endAngle, следуя направлению counterclockwise (по умолчанию — по часовой стрелке).
Параметры
x-
Координата x (горизонтальная) центра эллипса.
y-
Координата y (вертикальная) центра эллипса.
radiusX-
Радиус большой оси эллипса. Должен быть неотрицательным.
radiusY-
Радиус малой оси эллипса. Должен быть неотрицательным.
rotation-
Угол поворота эллипса, выраженный в радианах.
startAngle-
Угол, с которого начинается эллипс, отсчитываемый по часовой стрелке от положительной части оси x в радианах.
endAngle-
Угол, на котором заканчивается эллипс, отсчитываемый по часовой стрелке от положительной части оси x в радианах.
counterclockwiseНеобязательный-
Необязательное булевое значение, которое, если
true, рисует эллипс против часовой стрелки. Значение по умолчанию —false(по часовой стрелке).
Возвращаемое значение
None (undefined).
Примеры
Рисование полного эллипса
В этом примере рисуется эллипс под углом π/4 радианов (45°). Для создания полного эллипса дуга начинается с угла 0 радиан (0°) и заканчивается углом 2π радиан (360°).
HTML
<canvas id="canvas" width="200" height="200"></canvas>
JavaScript
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
// Draw the ellipse
ctx.beginPath();
ctx.ellipse(100, 100, 50, 75, Math.PI / 4, 0, 2 * Math.PI);
ctx.stroke();
// Draw the ellipse's line of reflection
ctx.beginPath();
ctx.setLineDash([5, 5]);
ctx.moveTo(0, 200);
ctx.lineTo(200, 0);
ctx.stroke();
Результат
Различные эллиптические дуги
В этом примере создаются три эллиптические траектории с различными свойствами.
HTML
<canvas id="canvas"></canvas>
JavaScript
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.fillStyle = "red";
ctx.beginPath();
ctx.ellipse(60, 75, 50, 30, Math.PI * 0.25, 0, Math.PI * 1.5);
ctx.fill();
ctx.fillStyle = "blue";
ctx.beginPath();
ctx.ellipse(150, 75, 50, 30, Math.PI * 0.25, 0, Math.PI);
ctx.fill();
ctx.fillStyle = "green";
ctx.beginPath();
ctx.ellipse(240, 75, 50, 30, Math.PI * 0.25, 0, Math.PI, true);
ctx.fill();
Результат
Спецификации
| Спецификация |
|---|
| HTML # dom-context-2d-ellipse-dev |
Совместимость с браузерами
| Рабочий стол | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | |
ellipse |
31 | 13 | 48 | 18 | 9 | 31 | 48 | 18 | 9 | 2.0 | 4.4.3 |
См. также
- Интерфейс, определяющий этот метод:
CanvasRenderingContext2D - Используйте
CanvasRenderingContext2D.arc()для рисования дуги окружности
© 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/ellipse