--- title: CanvasRenderingContext2D.ellipse() slug: Web/API/CanvasRenderingContext2D/ellipse tags: - API - Canvas - CanvasRenderingContext2D - Method - Reference - メソッド 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
の場合は楕円を反時計回りに描きます。既定値は false
(時計回り) です。この例は、 π/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(); // Draw the ellipse's line of reflection ctx.beginPath(); ctx.setLineDash([5, 5]); ctx.moveTo(0, 200); ctx.lineTo(200, 0); ctx.stroke();
{{ EmbedLiveSample('Drawing_a_full_ellipse', 700, 250) }}
この例では、様々な属性の3本の楕円のパスを生成します。
<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) }}
仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName('HTML WHATWG', "scripting.html#dom-context-2d-ellipse", "CanvasRenderingContext2D.ellipse")}} | {{Spec2('HTML WHATWG')}} |
{{Compat("api.CanvasRenderingContext2D.ellipse")}}