CanvasRenderingContext2D:ellipse() 方法
Canvas 2D API 的CanvasRenderingContext2D.ellipse()
方法将一个椭圆弧添加到当前子路径中。
语法
js
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
(顺时针)。
返回值
无(undefined
)。
示例
绘制完整的椭圆
此示例绘制一个旋转角度为 π/4 弧度(45°)的椭圆。为了绘制完整的椭圆,弧线从 0 弧度(0°)开始,到 2π 弧度(360°)结束。
HTML
html
<canvas id="canvas" width="200" height="200"></canvas>
JavaScript
js
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
html
<canvas id="canvas"></canvas>
JavaScript
js
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 |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参阅
- 定义此方法的接口:
CanvasRenderingContext2D
- 使用
CanvasRenderingContext2D.arc()
绘制圆弧