--- title: CanvasRenderingContext2D.ellipse() slug: Web/API/CanvasRenderingContext2D/ellipse tags: - API - Canvas - CanvasRenderingContext2D - Справка - метод translation_of: Web/API/CanvasRenderingContext2D/ellipse ---
CanvasRenderingContext2D
.ellipse()
- метод Canvas 2D API, который добавляет эллиптическую дугу к текущему подпространству.
void ctx.ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle [, anticlockwise]);
ellipse()
- метод, который создаёт эллиптическую дугу с центром в точках (x, y)
с радиусом radiusX
и radiusY
. Путь начинается от точки startAngle
и заканчивается в точке endAngle
, идёт по направлению, казанному в параметре (по часовой стрелке или против неё) anticlockwise
.
x
y
radiusX
radiusY
rotation
startAngle
endAngle
anticlockwise
{{optional_inline}}true
, рисует эллипс против часовой стрелки (counter-clockwise). Значение по умолчанию равно false
- рисование по часовой стрелке (clockwise).Этот пример рисует эллипс под углом π / 4 Радианы (45°). Чтобы сделать полный эллипс, дуга начинается под углом 0 радианов (0°) и заканчивается под углом 2π радианов (360°).
<canvas id="canvas" width="200" height="200"></canvas>
const canvas = document.getElementById('canvas'); const ctx = canvas.getContext('2d'); // Рисование эллипса ctx.beginPath(); ctx.ellipse(100, 100, 50, 75, Math.PI / 4, 0, 2 * Math.PI); ctx.stroke(); // Рисование линии отражения эллипса ctx.beginPath(); ctx.setLineDash([5, 5]); ctx.moveTo(0, 200); ctx.lineTo(200, 0); ctx.stroke();
{{ EmbedLiveSample('Drawing_a_full_ellipse', 700, 250) }}
В этом примере создаются три эллиптических контура с различными свойствами.
<canvas id="canvas"></canvas>
const canvas = document.getElementById('canvas'); const ctx = canvas.getContext('2d'); ctx.fillStyle = 'red'; ctx.beginPath(); ctx.ellipse(60, 75, 50, 30, Math.PI * .25, 0, Math.PI * 1.5); ctx.fill(); ctx.fillStyle = 'blue'; ctx.beginPath(); ctx.ellipse(150, 75, 50, 30, Math.PI * .25, 0, Math.PI); ctx.fill(); ctx.fillStyle = 'green'; ctx.beginPath(); ctx.ellipse(240, 75, 50, 30, Math.PI * .25, 0, Math.PI, true); ctx.fill();
{{ EmbedLiveSample('Various_elliptical_arcs', 700, 180) }}
Specification | Status | Comment |
---|---|---|
{{SpecName('HTML WHATWG', "scripting.html#dom-context-2d-ellipse", "CanvasRenderingContext2D.ellipse")}} | {{Spec2('HTML WHATWG')}} |
{{Compat("api.CanvasRenderingContext2D.ellipse")}}