跳到主要内容
版本:4.x

Path2D

Canvas 2D API 的接口 Path2D 用来声明路径,此路径稍后会被CanvasRenderingContext2D 对象使用。CanvasRenderingContext2D 接口的 路径方法 也存在于 Path2D 这个接口中,允许你在 canvas 中根据需要创建可以保留并重用的路径。

支持情况:

参考文档

方法

addPath

添加路径到当前路径。

支持情况:

(path: Path2D) => void
参数类型说明
pathPath2D添加的 Path2D 路径

arc

添加一段圆弧路径

支持情况:

(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise: boolean) => void
参数类型说明
xnumber圆心横坐标
ynumber圆心纵坐标
radiusnumber圆形半径,必须为正数
startAnglenumber圆弧开始角度
endAnglenumber圆弧结束角度
counterclockwiseboolean是否逆时针绘制。如果传 true, 则会从 endAngle 开始绘制到 startAngle

arcTo

通过给定控制点添加一段圆弧路径

支持情况:

(x1: number, y1: number, x2: number, y2: number, radius: number) => void
参数类型说明
x1number第一个控制点横坐标
y1number第一个控制点纵坐标
x2number第二个控制点横坐标
y2number第二个控制点纵坐标
radiusnumber圆形半径,必须为非负数

bezierCurveTo

添加三次贝塞尔曲线路径

支持情况:

(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number) => void
参数类型说明
cp1xnumber第一个控制点横坐标
cp1ynumber第一个控制点纵坐标
cp2xnumber第二个控制点横坐标
cp2ynumber第二个控制点纵坐标
xnumber结束点横坐标
ynumber结束点纵坐标

closePath

闭合路径到起点

支持情况:

() => void

ellipse

添加椭圆弧路径

支持情况:

(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise: boolean) => void
参数类型说明
xnumber椭圆圆心横坐标
ynumber椭圆圆心纵坐标
radiusXnumber椭圆长轴半径,必须为非负数
radiusYnumber椭圆短轴半径,必须为非负数
rotationnumber椭圆旋转角度
startAnglenumber圆弧开始角度
endAnglenumber圆弧结束角度
counterclockwiseboolean是否逆时针绘制。如果传 true, 则会从 endAngle 开始绘制到 startAngle

lineTo

添加直线路径

支持情况:

(x: number, y: number) => void
参数类型说明
xnumber结束点横坐标
ynumber结束点纵坐标

moveTo

移动路径开始点

支持情况:

(x: number, y: number) => void
参数类型说明
xnumber横坐标
ynumber纵坐标

quadraticCurveTo

添加二次贝塞尔曲线路径

支持情况:

(cpx: number, cpy: number, x: number, y: number) => void
参数类型说明
cpxnumber控制点横坐标
cpynumber控制点纵坐标
xnumber结束点横坐标
ynumber结束点纵坐标

rect

添加方形路径

支持情况:

(x: number, y: number, width: number, height: number) => void
参数类型说明
xnumber开始点横坐标
ynumber开始点纵坐标
widthnumber方形宽度,正数向右,负数向左
heightnumber方形高度,正数向下,负数向上

API 支持度

API微信小程序H5React NativeHarmony
Path2D✔️
Path2D.addPath✔️
Path2D.arc✔️
Path2D.arcTo✔️
Path2D.bezierCurveTo✔️
Path2D.closePath✔️
Path2D.ellipse✔️
Path2D.lineTo✔️
Path2D.moveTo✔️
Path2D.quadraticCurveTo✔️
Path2D.rect✔️