Path2D
Canvas 2D API 的接口 Path2D 用来声明路径,此路径稍后会被CanvasRenderingContext2D 对象使用。CanvasRenderingContext2D 接口的 路径方法 也存在于 Path2D 这个接口中,允许你在 canvas 中根据需要创建可以保留并重用的路径。
支持情况:
 
 
 
方法
addPath
添加路径到当前路径。
支持情况:
 
 
 
(path: Path2D) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| path | Path2D | 添加的 Path2D 路径 | 
arc
添加一段圆弧路径
支持情况:
 
 
 
(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise: boolean) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| x | number | 圆心横坐标 | 
| y | number | 圆心纵坐标 | 
| radius | number | 圆形半径,必须为正数 | 
| startAngle | number | 圆弧开始角度 | 
| endAngle | number | 圆弧结束角度 | 
| counterclockwise | boolean | 是否逆时针绘制。如果传 true, 则会从 endAngle 开始绘制到 startAngle | 
arcTo
通过给定控制点添加一段圆弧路径
支持情况:
 
 
 
(x1: number, y1: number, x2: number, y2: number, radius: number) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| x1 | number | 第一个控制点横坐标 | 
| y1 | number | 第一个控制点纵坐标 | 
| x2 | number | 第二个控制点横坐标 | 
| y2 | number | 第二个控制点纵坐标 | 
| radius | number | 圆形半径,必须为非负数 | 
bezierCurveTo
添加三次贝塞尔曲线路径
支持情况:
 
 
 
(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| cp1x | number | 第一个控制点横坐标 | 
| cp1y | number | 第一个控制点纵坐标 | 
| cp2x | number | 第二个控制点横坐标 | 
| cp2y | number | 第二个控制点纵坐标 | 
| x | number | 结束点横坐标 | 
| y | number | 结束点纵坐标 | 
closePath
闭合路径到起点
支持情况:
 
 
 
() => void
ellipse
添加椭圆弧路径
支持情况:
 
 
 
(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise: boolean) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| x | number | 椭圆圆心横坐标 | 
| y | number | 椭圆圆心纵坐标 | 
| radiusX | number | 椭圆长轴半径,必须为非负数 | 
| radiusY | number | 椭圆短轴半径,必须为非负数 | 
| rotation | number | 椭圆旋转角度 | 
| startAngle | number | 圆弧开始角度 | 
| endAngle | number | 圆弧结束角度 | 
| counterclockwise | boolean | 是否逆时针绘制。如果传 true, 则会从 endAngle 开始绘制到 startAngle | 
lineTo
添加直线路径
支持情况:
 
 
 
(x: number, y: number) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| x | number | 结束点横坐标 | 
| y | number | 结束点纵坐标 | 
moveTo
移动路径开始点
支持情况:
 
 
 
(x: number, y: number) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| x | number | 横坐标 | 
| y | number | 纵坐标 | 
quadraticCurveTo
添加二次贝塞尔曲线路径
支持情况:
 
 
 
(cpx: number, cpy: number, x: number, y: number) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| cpx | number | 控制点横坐标 | 
| cpy | number | 控制点纵坐标 | 
| x | number | 结束点横坐标 | 
| y | number | 结束点纵坐标 | 
rect
添加方形路径
支持情况:
 
 
 
(x: number, y: number, width: number, height: number) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| x | number | 开始点横坐标 | 
| y | number | 开始点纵坐标 | 
| width | number | 方形宽度,正数向右,负数向左 | 
| height | number | 方形高度,正数向下,负数向上 | 
API 支持度
| API | 微信小程序 | H5 | React Native | Harmony | 
|---|---|---|---|---|
| Path2D | ✔️ | |||
| Path2D.addPath | ✔️ | |||
| Path2D.arc | ✔️ | |||
| Path2D.arcTo | ✔️ | |||
| Path2D.bezierCurveTo | ✔️ | |||
| Path2D.closePath | ✔️ | |||
| Path2D.ellipse | ✔️ | |||
| Path2D.lineTo | ✔️ | |||
| Path2D.moveTo | ✔️ | |||
| Path2D.quadraticCurveTo | ✔️ | |||
| Path2D.rect | ✔️ |