1e41f4b71Sopenharmony_ci# Path2D
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci路径对象,支持通过对象的接口进行路径的描述,并通过Canvas的stroke接口或者fill接口进行绘制。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci>  **说明:**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci>  从 API Version 8 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci## 接口
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ciPath2D(unit?: LengthMetricsUnit)
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci构造一个空的Path2D对象。
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci**参数:**
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci| 参数名  | 类型     | 必填 |  说明   |
24e41f4b71Sopenharmony_ci| ----- | -------- | ---- | ---------- |
25e41f4b71Sopenharmony_ci| unit<sup>12+</sup>  | [LengthMetricsUnit](../js-apis-arkui-graphics.md#lengthmetricsunit12) | 否 | 用来配置Path2D对象的单位模式,配置后无法动态更改,配置方法同[CanvasRenderingContext2D](ts-canvasrenderingcontext2d.md#lengthmetricsunit12)。<br>默认值:DEFAULT。|
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ciPath2D(description: string, unit?: LengthMetricsUnit)
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci使用符合SVG路径描述规范的路径字符串构造一个Path2D对象。
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci**参数:**
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci| 参数名  | 类型     | 必填 |  说明   |
40e41f4b71Sopenharmony_ci| ----- | -------- | ---- | ---------- |
41e41f4b71Sopenharmony_ci| description | string | 是 | 符合 SVG 路径描述规范的路径字符串 |
42e41f4b71Sopenharmony_ci| unit<sup>12+</sup>  | [LengthMetricsUnit](../js-apis-arkui-graphics.md#lengthmetricsunit12) | 否 | 用来配置Path2D对象的单位模式,配置后无法动态更改,配置方法同[CanvasRenderingContext2D](ts-canvasrenderingcontext2d.md#lengthmetricsunit12)。<br>默认值:DEFAULT。|
43e41f4b71Sopenharmony_ci
44e41f4b71Sopenharmony_ci## addPath
45e41f4b71Sopenharmony_ci
46e41f4b71Sopenharmony_ciaddPath(path: Path2D, transform?: Matrix2D): void
47e41f4b71Sopenharmony_ci
48e41f4b71Sopenharmony_ci将另一个路径添加到当前的路径对象中。
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
53e41f4b71Sopenharmony_ci
54e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
55e41f4b71Sopenharmony_ci
56e41f4b71Sopenharmony_ci**参数:**
57e41f4b71Sopenharmony_ci
58e41f4b71Sopenharmony_ci| 参数名  | 类型     | 必填 |  说明   |
59e41f4b71Sopenharmony_ci| ----- | -------- | ---- | ---------- |
60e41f4b71Sopenharmony_ci| path      | [Path2D](ts-components-canvas-path2d.md)   | 是 | 需要添加到当前路径的路径对象,路径单位:px。 |
61e41f4b71Sopenharmony_ci| transform | [Matrix2D](ts-components-canvas-matrix2d.md) | 否 | 新增路径的变换矩阵对象。<br>默认值:null。 |
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci
64e41f4b71Sopenharmony_ci**示例:**
65e41f4b71Sopenharmony_ci
66e41f4b71Sopenharmony_ci  ```ts
67e41f4b71Sopenharmony_ci  // xxx.ets
68e41f4b71Sopenharmony_ci  @Entry
69e41f4b71Sopenharmony_ci  @Component
70e41f4b71Sopenharmony_ci  struct AddPath {
71e41f4b71Sopenharmony_ci    private settings: RenderingContextSettings = new RenderingContextSettings(true)
72e41f4b71Sopenharmony_ci    private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
73e41f4b71Sopenharmony_ci  
74e41f4b71Sopenharmony_ci    private path2Da: Path2D = new Path2D("M250 150 L150 350 L350 350 Z")
75e41f4b71Sopenharmony_ci    private path2Db: Path2D = new Path2D()
76e41f4b71Sopenharmony_ci  
77e41f4b71Sopenharmony_ci    build() {
78e41f4b71Sopenharmony_ci      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
79e41f4b71Sopenharmony_ci        Canvas(this.context)
80e41f4b71Sopenharmony_ci          .width('100%')
81e41f4b71Sopenharmony_ci          .height('100%')
82e41f4b71Sopenharmony_ci          .backgroundColor('#ffff00')
83e41f4b71Sopenharmony_ci          .onReady(() =>{
84e41f4b71Sopenharmony_ci            this.path2Db.addPath(this.path2Da)
85e41f4b71Sopenharmony_ci            this.context.stroke(this.path2Db)
86e41f4b71Sopenharmony_ci          })
87e41f4b71Sopenharmony_ci      }
88e41f4b71Sopenharmony_ci      .width('100%')
89e41f4b71Sopenharmony_ci      .height('100%')
90e41f4b71Sopenharmony_ci    }
91e41f4b71Sopenharmony_ci  }
92e41f4b71Sopenharmony_ci  ```
93e41f4b71Sopenharmony_ci
94e41f4b71Sopenharmony_ci  ![zh-cn_image_0000001238712467](figures/zh-cn_image_0000001238712467.png)
95e41f4b71Sopenharmony_ci
96e41f4b71Sopenharmony_ci
97e41f4b71Sopenharmony_ci## closePath
98e41f4b71Sopenharmony_ci
99e41f4b71Sopenharmony_ciclosePath(): void
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci将路径的当前点移回到路径的起点,当前点到起点间画一条直线。如果形状已经闭合或只有一个点,则此功能不执行任何操作。
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
104e41f4b71Sopenharmony_ci
105e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
106e41f4b71Sopenharmony_ci
107e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
108e41f4b71Sopenharmony_ci
109e41f4b71Sopenharmony_ci**示例:**
110e41f4b71Sopenharmony_ci
111e41f4b71Sopenharmony_ci  ```ts
112e41f4b71Sopenharmony_ci  // xxx.ets
113e41f4b71Sopenharmony_ci  @Entry
114e41f4b71Sopenharmony_ci  @Component
115e41f4b71Sopenharmony_ci  struct ClosePath {
116e41f4b71Sopenharmony_ci    private settings: RenderingContextSettings = new RenderingContextSettings(true)
117e41f4b71Sopenharmony_ci    private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
118e41f4b71Sopenharmony_ci    private path2Db: Path2D = new Path2D()
119e41f4b71Sopenharmony_ci  
120e41f4b71Sopenharmony_ci    build() {
121e41f4b71Sopenharmony_ci      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
122e41f4b71Sopenharmony_ci        Canvas(this.context)
123e41f4b71Sopenharmony_ci          .width('100%')
124e41f4b71Sopenharmony_ci          .height('100%')
125e41f4b71Sopenharmony_ci          .backgroundColor('#ffff00')
126e41f4b71Sopenharmony_ci          .onReady(() =>{
127e41f4b71Sopenharmony_ci            this.path2Db.moveTo(200, 100)
128e41f4b71Sopenharmony_ci            this.path2Db.lineTo(300, 100)
129e41f4b71Sopenharmony_ci            this.path2Db.lineTo(200, 200)
130e41f4b71Sopenharmony_ci            this.path2Db.closePath()
131e41f4b71Sopenharmony_ci            this.context.stroke(this.path2Db)
132e41f4b71Sopenharmony_ci          })
133e41f4b71Sopenharmony_ci      }
134e41f4b71Sopenharmony_ci      .width('100%')
135e41f4b71Sopenharmony_ci      .height('100%')
136e41f4b71Sopenharmony_ci    }
137e41f4b71Sopenharmony_ci  }
138e41f4b71Sopenharmony_ci  ```
139e41f4b71Sopenharmony_ci
140e41f4b71Sopenharmony_ci  ![zh-cn_image_0000001193872542](figures/zh-cn_image_0000001193872542.png)
141e41f4b71Sopenharmony_ci
142e41f4b71Sopenharmony_ci
143e41f4b71Sopenharmony_ci## moveTo
144e41f4b71Sopenharmony_ci
145e41f4b71Sopenharmony_cimoveTo(x: number, y: number): void
146e41f4b71Sopenharmony_ci
147e41f4b71Sopenharmony_ci将路径的当前坐标点移动到目标点,移动过程中不绘制线条。
148e41f4b71Sopenharmony_ci
149e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
154e41f4b71Sopenharmony_ci
155e41f4b71Sopenharmony_ci**参数:**
156e41f4b71Sopenharmony_ci
157e41f4b71Sopenharmony_ci| 参数   | 类型     | 必填 | 描述       |
158e41f4b71Sopenharmony_ci| ---- | ------ | ---- | -------- |
159e41f4b71Sopenharmony_ci| x    | number | 是 | 目标点X轴坐标。<br>默认单位:vp。 |
160e41f4b71Sopenharmony_ci| y    | number | 是 | 目标点Y轴坐标。<br>默认单位:vp。 |
161e41f4b71Sopenharmony_ci
162e41f4b71Sopenharmony_ci**示例:**
163e41f4b71Sopenharmony_ci
164e41f4b71Sopenharmony_ci  ```ts
165e41f4b71Sopenharmony_ci  // xxx.ets
166e41f4b71Sopenharmony_ci  @Entry
167e41f4b71Sopenharmony_ci  @Component
168e41f4b71Sopenharmony_ci  struct MoveTo {
169e41f4b71Sopenharmony_ci    private settings: RenderingContextSettings = new RenderingContextSettings(true)
170e41f4b71Sopenharmony_ci    private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
171e41f4b71Sopenharmony_ci    private path2Db: Path2D = new Path2D()
172e41f4b71Sopenharmony_ci  
173e41f4b71Sopenharmony_ci    build() {
174e41f4b71Sopenharmony_ci      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
175e41f4b71Sopenharmony_ci        Canvas(this.context)
176e41f4b71Sopenharmony_ci          .width('100%')
177e41f4b71Sopenharmony_ci          .height('100%')
178e41f4b71Sopenharmony_ci          .backgroundColor('#ffff00')
179e41f4b71Sopenharmony_ci          .onReady(() =>{
180e41f4b71Sopenharmony_ci            this.path2Db.moveTo(50, 100)
181e41f4b71Sopenharmony_ci            this.path2Db.lineTo(250, 100)
182e41f4b71Sopenharmony_ci            this.path2Db.lineTo(150, 200)
183e41f4b71Sopenharmony_ci            this.path2Db.closePath()
184e41f4b71Sopenharmony_ci            this.context.stroke(this.path2Db)
185e41f4b71Sopenharmony_ci          })
186e41f4b71Sopenharmony_ci      }
187e41f4b71Sopenharmony_ci      .width('100%')
188e41f4b71Sopenharmony_ci      .height('100%')
189e41f4b71Sopenharmony_ci    }
190e41f4b71Sopenharmony_ci  }
191e41f4b71Sopenharmony_ci  ```
192e41f4b71Sopenharmony_ci
193e41f4b71Sopenharmony_ci  ![zh-cn_image_0000001194032502](figures/zh-cn_image_0000001194032502.png)
194e41f4b71Sopenharmony_ci
195e41f4b71Sopenharmony_ci
196e41f4b71Sopenharmony_ci## lineTo
197e41f4b71Sopenharmony_ci
198e41f4b71Sopenharmony_cilineTo(x: number, y: number): void
199e41f4b71Sopenharmony_ci
200e41f4b71Sopenharmony_ci从当前点绘制一条直线到目标点。
201e41f4b71Sopenharmony_ci
202e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
203e41f4b71Sopenharmony_ci
204e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
205e41f4b71Sopenharmony_ci
206e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
207e41f4b71Sopenharmony_ci
208e41f4b71Sopenharmony_ci**参数:**
209e41f4b71Sopenharmony_ci
210e41f4b71Sopenharmony_ci| 参数名  | 类型     | 必填 |  说明   |
211e41f4b71Sopenharmony_ci| ----- | -------- | ---- | ---------- |
212e41f4b71Sopenharmony_ci| x    | number | 是 | 目标点X轴坐标。<br>默认单位:vp。 |
213e41f4b71Sopenharmony_ci| y    | number | 是 | 目标点Y轴坐标。<br>默认单位:vp。 |
214e41f4b71Sopenharmony_ci
215e41f4b71Sopenharmony_ci**示例:**
216e41f4b71Sopenharmony_ci
217e41f4b71Sopenharmony_ci  ```ts
218e41f4b71Sopenharmony_ci  // xxx.ets
219e41f4b71Sopenharmony_ci  @Entry
220e41f4b71Sopenharmony_ci  @Component
221e41f4b71Sopenharmony_ci  struct LineTo {
222e41f4b71Sopenharmony_ci    private settings: RenderingContextSettings = new RenderingContextSettings(true)
223e41f4b71Sopenharmony_ci    private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
224e41f4b71Sopenharmony_ci    private path2Db: Path2D = new Path2D()
225e41f4b71Sopenharmony_ci  
226e41f4b71Sopenharmony_ci    build() {
227e41f4b71Sopenharmony_ci      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
228e41f4b71Sopenharmony_ci        Canvas(this.context)
229e41f4b71Sopenharmony_ci          .width('100%')
230e41f4b71Sopenharmony_ci          .height('100%')
231e41f4b71Sopenharmony_ci          .backgroundColor('#ffff00')
232e41f4b71Sopenharmony_ci          .onReady(() =>{
233e41f4b71Sopenharmony_ci            this.path2Db.moveTo(100, 100)
234e41f4b71Sopenharmony_ci            this.path2Db.lineTo(100, 200)
235e41f4b71Sopenharmony_ci            this.path2Db.lineTo(200, 200)
236e41f4b71Sopenharmony_ci            this.path2Db.lineTo(200, 100)
237e41f4b71Sopenharmony_ci            this.path2Db.closePath()
238e41f4b71Sopenharmony_ci            this.context.stroke(this.path2Db)
239e41f4b71Sopenharmony_ci          })
240e41f4b71Sopenharmony_ci      }
241e41f4b71Sopenharmony_ci      .width('100%')
242e41f4b71Sopenharmony_ci      .height('100%')
243e41f4b71Sopenharmony_ci    }
244e41f4b71Sopenharmony_ci  }
245e41f4b71Sopenharmony_ci  ```
246e41f4b71Sopenharmony_ci
247e41f4b71Sopenharmony_ci  ![zh-cn_image_0000001238832437](figures/zh-cn_image_0000001238832437.png)
248e41f4b71Sopenharmony_ci
249e41f4b71Sopenharmony_ci
250e41f4b71Sopenharmony_ci## bezierCurveTo
251e41f4b71Sopenharmony_ci
252e41f4b71Sopenharmony_cibezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void
253e41f4b71Sopenharmony_ci
254e41f4b71Sopenharmony_ci创建三次贝赛尔曲线的路径。
255e41f4b71Sopenharmony_ci
256e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
257e41f4b71Sopenharmony_ci
258e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
259e41f4b71Sopenharmony_ci
260e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
261e41f4b71Sopenharmony_ci
262e41f4b71Sopenharmony_ci**参数:**
263e41f4b71Sopenharmony_ci
264e41f4b71Sopenharmony_ci| 参数名  | 类型     | 必填 |  说明   |
265e41f4b71Sopenharmony_ci| ----- | -------- | ---- | ---------- |
266e41f4b71Sopenharmony_ci| cp1x | number | 是 | 第一个贝塞尔参数的x坐标值。<br>默认单位:vp。 |
267e41f4b71Sopenharmony_ci| cp1y | number | 是 | 第一个贝塞尔参数的y坐标值。<br>默认单位:vp。 |
268e41f4b71Sopenharmony_ci| cp2x | number | 是 | 第二个贝塞尔参数的x坐标值。<br>默认单位:vp。 |
269e41f4b71Sopenharmony_ci| cp2y | number | 是 | 第二个贝塞尔参数的y坐标值。<br>默认单位:vp。 |
270e41f4b71Sopenharmony_ci| x    | number | 是 | 路径结束时的x坐标值。<br>默认单位:vp。    |
271e41f4b71Sopenharmony_ci| y    | number | 是 | 路径结束时的y坐标值。<br>默认单位:vp。    |
272e41f4b71Sopenharmony_ci
273e41f4b71Sopenharmony_ci**示例:**
274e41f4b71Sopenharmony_ci
275e41f4b71Sopenharmony_ci  ```ts
276e41f4b71Sopenharmony_ci  // xxx.ets
277e41f4b71Sopenharmony_ci  @Entry
278e41f4b71Sopenharmony_ci  @Component
279e41f4b71Sopenharmony_ci  struct BezierCurveTo {
280e41f4b71Sopenharmony_ci    private settings: RenderingContextSettings = new RenderingContextSettings(true)
281e41f4b71Sopenharmony_ci    private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
282e41f4b71Sopenharmony_ci    private path2Db: Path2D = new Path2D()
283e41f4b71Sopenharmony_ci  
284e41f4b71Sopenharmony_ci    build() {
285e41f4b71Sopenharmony_ci      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
286e41f4b71Sopenharmony_ci        Canvas(this.context)
287e41f4b71Sopenharmony_ci          .width('100%')
288e41f4b71Sopenharmony_ci          .height('100%')
289e41f4b71Sopenharmony_ci          .backgroundColor('#ffff00')
290e41f4b71Sopenharmony_ci          .onReady(() =>{
291e41f4b71Sopenharmony_ci            this.path2Db.moveTo(10, 10)
292e41f4b71Sopenharmony_ci            this.path2Db.bezierCurveTo(20, 100, 200, 100, 200, 20)
293e41f4b71Sopenharmony_ci            this.context.stroke(this.path2Db)
294e41f4b71Sopenharmony_ci          })
295e41f4b71Sopenharmony_ci      }
296e41f4b71Sopenharmony_ci      .width('100%')
297e41f4b71Sopenharmony_ci      .height('100%')
298e41f4b71Sopenharmony_ci    }
299e41f4b71Sopenharmony_ci  }
300e41f4b71Sopenharmony_ci  ```
301e41f4b71Sopenharmony_ci
302e41f4b71Sopenharmony_ci  ![zh-cn_image_0000001239032455](figures/zh-cn_image_0000001239032455.png)
303e41f4b71Sopenharmony_ci
304e41f4b71Sopenharmony_ci
305e41f4b71Sopenharmony_ci## quadraticCurveTo
306e41f4b71Sopenharmony_ci
307e41f4b71Sopenharmony_ciquadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void
308e41f4b71Sopenharmony_ci
309e41f4b71Sopenharmony_ci创建二次贝赛尔曲线的路径。
310e41f4b71Sopenharmony_ci
311e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
312e41f4b71Sopenharmony_ci
313e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
314e41f4b71Sopenharmony_ci
315e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
316e41f4b71Sopenharmony_ci
317e41f4b71Sopenharmony_ci**参数:**
318e41f4b71Sopenharmony_ci
319e41f4b71Sopenharmony_ci| 参数名  | 类型     | 必填 |  说明   |
320e41f4b71Sopenharmony_ci| ----- | -------- | ---- | ---------- |
321e41f4b71Sopenharmony_ci| cpx  | number | 是 | 贝塞尔参数的x坐标值。<br>默认单位:vp。 |
322e41f4b71Sopenharmony_ci| cpy  | number | 是 | 贝塞尔参数的y坐标值。<br>默认单位:vp。 |
323e41f4b71Sopenharmony_ci| x    | number | 是 | 路径结束时的x坐标值。<br>默认单位:vp。 |
324e41f4b71Sopenharmony_ci| y    | number | 是 | 路径结束时的y坐标值。<br>默认单位:vp。 |
325e41f4b71Sopenharmony_ci
326e41f4b71Sopenharmony_ci**示例:**
327e41f4b71Sopenharmony_ci
328e41f4b71Sopenharmony_ci  ```ts
329e41f4b71Sopenharmony_ci  // xxx.ets
330e41f4b71Sopenharmony_ci  @Entry
331e41f4b71Sopenharmony_ci  @Component
332e41f4b71Sopenharmony_ci  struct QuadraticCurveTo {
333e41f4b71Sopenharmony_ci    private settings: RenderingContextSettings = new RenderingContextSettings(true)
334e41f4b71Sopenharmony_ci    private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
335e41f4b71Sopenharmony_ci    private path2Db: Path2D = new Path2D()
336e41f4b71Sopenharmony_ci  
337e41f4b71Sopenharmony_ci    build() {
338e41f4b71Sopenharmony_ci      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
339e41f4b71Sopenharmony_ci        Canvas(this.context)
340e41f4b71Sopenharmony_ci          .width('100%')
341e41f4b71Sopenharmony_ci          .height('100%')
342e41f4b71Sopenharmony_ci          .backgroundColor('#ffff00')
343e41f4b71Sopenharmony_ci          .onReady(() =>{
344e41f4b71Sopenharmony_ci            this.path2Db.moveTo(10, 10)
345e41f4b71Sopenharmony_ci            this.path2Db.quadraticCurveTo(100, 100, 200, 20)
346e41f4b71Sopenharmony_ci            this.context.stroke(this.path2Db)
347e41f4b71Sopenharmony_ci        })
348e41f4b71Sopenharmony_ci      }
349e41f4b71Sopenharmony_ci      .width('100%')
350e41f4b71Sopenharmony_ci      .height('100%')
351e41f4b71Sopenharmony_ci    }
352e41f4b71Sopenharmony_ci  }
353e41f4b71Sopenharmony_ci  ```
354e41f4b71Sopenharmony_ci
355e41f4b71Sopenharmony_ci  ![zh-cn_image_0000001238952419](figures/zh-cn_image_0000001238952419.png)
356e41f4b71Sopenharmony_ci
357e41f4b71Sopenharmony_ci
358e41f4b71Sopenharmony_ci## arc
359e41f4b71Sopenharmony_ci
360e41f4b71Sopenharmony_ciarc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void
361e41f4b71Sopenharmony_ci
362e41f4b71Sopenharmony_ci绘制弧线路径。
363e41f4b71Sopenharmony_ci
364e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
365e41f4b71Sopenharmony_ci
366e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
367e41f4b71Sopenharmony_ci
368e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
369e41f4b71Sopenharmony_ci
370e41f4b71Sopenharmony_ci**参数:**
371e41f4b71Sopenharmony_ci
372e41f4b71Sopenharmony_ci| 参数名  | 类型     | 必填 |  说明   |
373e41f4b71Sopenharmony_ci| ----- | -------- | ---- | ---------- |
374e41f4b71Sopenharmony_ci| x                | number  | 是 | 弧线圆心的x坐标值。<br>默认单位:vp。 |
375e41f4b71Sopenharmony_ci| y                | number  | 是 | 弧线圆心的y坐标值。<br>默认单位:vp。 |
376e41f4b71Sopenharmony_ci| radius           | number  | 是 | 弧线的圆半径。<br>默认单位:vp。    |
377e41f4b71Sopenharmony_ci| startAngle       | number  | 是 | 弧线的起始弧度。<br>单位:弧度。   |
378e41f4b71Sopenharmony_ci| endAngle         | number  | 是 | 弧线的终止弧度。<br>单位:弧度。   |
379e41f4b71Sopenharmony_ci| counterclockwise | boolean | 否 | 是否逆时针绘制圆弧。<br>true:逆时针方向绘制椭圆。<br>false:顺时针方向绘制椭圆。<br>默认值:false。 |
380e41f4b71Sopenharmony_ci
381e41f4b71Sopenharmony_ci**示例:**
382e41f4b71Sopenharmony_ci
383e41f4b71Sopenharmony_ci  ```ts
384e41f4b71Sopenharmony_ci  // xxx.ets
385e41f4b71Sopenharmony_ci  @Entry
386e41f4b71Sopenharmony_ci  @Component
387e41f4b71Sopenharmony_ci  struct Arc {
388e41f4b71Sopenharmony_ci    private settings: RenderingContextSettings = new RenderingContextSettings(true)
389e41f4b71Sopenharmony_ci    private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
390e41f4b71Sopenharmony_ci    private path2Db: Path2D = new Path2D()
391e41f4b71Sopenharmony_ci  
392e41f4b71Sopenharmony_ci    build() {
393e41f4b71Sopenharmony_ci      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
394e41f4b71Sopenharmony_ci        Canvas(this.context)
395e41f4b71Sopenharmony_ci          .width('100%')
396e41f4b71Sopenharmony_ci          .height('100%')
397e41f4b71Sopenharmony_ci          .backgroundColor('#ffff00')
398e41f4b71Sopenharmony_ci          .onReady(() =>{
399e41f4b71Sopenharmony_ci            this.path2Db.arc(100, 75, 50, 0, 6.28)
400e41f4b71Sopenharmony_ci            this.context.stroke(this.path2Db)
401e41f4b71Sopenharmony_ci          })
402e41f4b71Sopenharmony_ci      }
403e41f4b71Sopenharmony_ci      .width('100%')
404e41f4b71Sopenharmony_ci      .height('100%')
405e41f4b71Sopenharmony_ci    }
406e41f4b71Sopenharmony_ci  }
407e41f4b71Sopenharmony_ci  ```
408e41f4b71Sopenharmony_ci
409e41f4b71Sopenharmony_ci  ![zh-cn_image_0000001194192488](figures/zh-cn_image_0000001194192488.png)
410e41f4b71Sopenharmony_ci
411e41f4b71Sopenharmony_ci
412e41f4b71Sopenharmony_ci## arcTo
413e41f4b71Sopenharmony_ci
414e41f4b71Sopenharmony_ciarcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void
415e41f4b71Sopenharmony_ci
416e41f4b71Sopenharmony_ci依据圆弧经过的点和圆弧半径创建圆弧路径。
417e41f4b71Sopenharmony_ci
418e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
419e41f4b71Sopenharmony_ci
420e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
421e41f4b71Sopenharmony_ci
422e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
423e41f4b71Sopenharmony_ci
424e41f4b71Sopenharmony_ci**参数:**
425e41f4b71Sopenharmony_ci
426e41f4b71Sopenharmony_ci| 参数名  | 类型     | 必填 |  说明   |
427e41f4b71Sopenharmony_ci| ----- | -------- | ---- | ---------- |
428e41f4b71Sopenharmony_ci| x1     | number | 是 | 圆弧经过的第一个点的x坐标值。<br>默认单位:vp。 |
429e41f4b71Sopenharmony_ci| y1     | number | 是 | 圆弧经过的第一个点的y坐标值。<br>默认单位:vp。 |
430e41f4b71Sopenharmony_ci| x2     | number | 是 | 圆弧经过的第二个点的x坐标值。<br>默认单位:vp。 |
431e41f4b71Sopenharmony_ci| y2     | number | 是 | 圆弧经过的第二个点的y坐标值。<br>默认单位:vp。 |
432e41f4b71Sopenharmony_ci| radius | number | 是 | 圆弧的圆半径值。<br>默认单位:vp。 |
433e41f4b71Sopenharmony_ci
434e41f4b71Sopenharmony_ci**示例:**
435e41f4b71Sopenharmony_ci
436e41f4b71Sopenharmony_ci  ```ts
437e41f4b71Sopenharmony_ci  // xxx.ets
438e41f4b71Sopenharmony_ci  @Entry
439e41f4b71Sopenharmony_ci  @Component
440e41f4b71Sopenharmony_ci  struct ArcTo {
441e41f4b71Sopenharmony_ci    private settings: RenderingContextSettings = new RenderingContextSettings(true)
442e41f4b71Sopenharmony_ci    private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
443e41f4b71Sopenharmony_ci    private path2Db: Path2D = new Path2D()
444e41f4b71Sopenharmony_ci  
445e41f4b71Sopenharmony_ci    build() {
446e41f4b71Sopenharmony_ci      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
447e41f4b71Sopenharmony_ci        Canvas(this.context)
448e41f4b71Sopenharmony_ci          .width('100%')
449e41f4b71Sopenharmony_ci          .height('100%')
450e41f4b71Sopenharmony_ci          .backgroundColor('#ffff00')
451e41f4b71Sopenharmony_ci          .onReady(() =>{
452e41f4b71Sopenharmony_ci            this.path2Db.arcTo(150, 20, 150, 70, 50)
453e41f4b71Sopenharmony_ci            this.context.stroke(this.path2Db)
454e41f4b71Sopenharmony_ci          })
455e41f4b71Sopenharmony_ci      }
456e41f4b71Sopenharmony_ci      .width('100%')
457e41f4b71Sopenharmony_ci      .height('100%')
458e41f4b71Sopenharmony_ci    }
459e41f4b71Sopenharmony_ci  }
460e41f4b71Sopenharmony_ci  ```
461e41f4b71Sopenharmony_ci
462e41f4b71Sopenharmony_ci  ![zh-cn_image_0000001194352486](figures/zh-cn_image_0000001194352486.png)
463e41f4b71Sopenharmony_ci
464e41f4b71Sopenharmony_ci
465e41f4b71Sopenharmony_ci## ellipse
466e41f4b71Sopenharmony_ci
467e41f4b71Sopenharmony_ciellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void
468e41f4b71Sopenharmony_ci
469e41f4b71Sopenharmony_ci在规定的矩形区域绘制一个椭圆。
470e41f4b71Sopenharmony_ci
471e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
472e41f4b71Sopenharmony_ci
473e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
474e41f4b71Sopenharmony_ci
475e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
476e41f4b71Sopenharmony_ci
477e41f4b71Sopenharmony_ci**参数:**
478e41f4b71Sopenharmony_ci
479e41f4b71Sopenharmony_ci| 参数名  | 类型     | 必填 |  说明   |
480e41f4b71Sopenharmony_ci| ----- | -------- | ---- | ---------- |
481e41f4b71Sopenharmony_ci| x                | number  | 是  | 椭圆圆心的x轴坐标。<br>默认单位:vp。|
482e41f4b71Sopenharmony_ci| y                | number  | 是  | 椭圆圆心的y轴坐标。<br>默认单位:vp。|
483e41f4b71Sopenharmony_ci| radiusX          | number  | 是  | 椭圆x轴的半径长度。<br>默认单位:vp。|
484e41f4b71Sopenharmony_ci| radiusY          | number  | 是  | 椭圆y轴的半径长度。<br>默认单位:vp。|
485e41f4b71Sopenharmony_ci| rotation         | number  | 是  | 椭圆的旋转角度。<br>单位:弧度。                           |
486e41f4b71Sopenharmony_ci| startAngle       | number  | 是  | 椭圆绘制的起始点角度。<br>单位:弧度。                        |
487e41f4b71Sopenharmony_ci| endAngle         | number  | 是  | 椭圆绘制的结束点角度。<br>单位:弧度。                        |
488e41f4b71Sopenharmony_ci| counterclockwise | boolean | 否  | 是否以逆时针方向绘制椭圆。<br>true:逆时针方向绘制椭圆。<br>false:顺时针方向绘制椭圆。<br>默认值:false。 |
489e41f4b71Sopenharmony_ci
490e41f4b71Sopenharmony_ci**示例:**
491e41f4b71Sopenharmony_ci
492e41f4b71Sopenharmony_ci  ```ts
493e41f4b71Sopenharmony_ci  // xxx.ets
494e41f4b71Sopenharmony_ci  @Entry
495e41f4b71Sopenharmony_ci  @Component
496e41f4b71Sopenharmony_ci  struct CanvasExample {
497e41f4b71Sopenharmony_ci    private settings: RenderingContextSettings = new RenderingContextSettings(true)
498e41f4b71Sopenharmony_ci    private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
499e41f4b71Sopenharmony_ci    private path2Db: Path2D = new Path2D()
500e41f4b71Sopenharmony_ci
501e41f4b71Sopenharmony_ci    build() {
502e41f4b71Sopenharmony_ci      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
503e41f4b71Sopenharmony_ci        Canvas(this.context)
504e41f4b71Sopenharmony_ci          .width('100%')
505e41f4b71Sopenharmony_ci          .height('100%')
506e41f4b71Sopenharmony_ci          .backgroundColor('#ffff00')
507e41f4b71Sopenharmony_ci          .onReady(() =>{
508e41f4b71Sopenharmony_ci            this.path2Db.ellipse(200, 200, 50, 100, 0, Math.PI * 1, Math.PI*2)
509e41f4b71Sopenharmony_ci            this.context.stroke(this.path2Db)
510e41f4b71Sopenharmony_ci          })
511e41f4b71Sopenharmony_ci      }
512e41f4b71Sopenharmony_ci      .width('100%')
513e41f4b71Sopenharmony_ci      .height('100%')
514e41f4b71Sopenharmony_ci    }
515e41f4b71Sopenharmony_ci  }
516e41f4b71Sopenharmony_ci  ```
517e41f4b71Sopenharmony_ci
518e41f4b71Sopenharmony_ci  ![zh-cn_image_0000001238712471](figures/zh-cn_image_0000001238712471.png)
519e41f4b71Sopenharmony_ci
520e41f4b71Sopenharmony_ci
521e41f4b71Sopenharmony_ci## rect
522e41f4b71Sopenharmony_ci
523e41f4b71Sopenharmony_cirect(x: number, y: number, w: number, h: number): void
524e41f4b71Sopenharmony_ci
525e41f4b71Sopenharmony_ci创建矩形路径。
526e41f4b71Sopenharmony_ci
527e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
528e41f4b71Sopenharmony_ci
529e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
530e41f4b71Sopenharmony_ci
531e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
532e41f4b71Sopenharmony_ci
533e41f4b71Sopenharmony_ci**参数:**
534e41f4b71Sopenharmony_ci
535e41f4b71Sopenharmony_ci| 参数名  | 类型     | 必填 |  说明   |
536e41f4b71Sopenharmony_ci| ----- | -------- | ---- | ---------- |
537e41f4b71Sopenharmony_ci| x    | number | 是 | 指定矩形的左上角x坐标值。<br>默认单位:vp。 |
538e41f4b71Sopenharmony_ci| y    | number | 是 | 指定矩形的左上角y坐标值。<br>默认单位:vp。 |
539e41f4b71Sopenharmony_ci| w    | number | 是 | 指定矩形的宽度。<br>默认单位:vp。 |
540e41f4b71Sopenharmony_ci| h    | number | 是 | 指定矩形的高度。<br>默认单位:vp。 |
541e41f4b71Sopenharmony_ci
542e41f4b71Sopenharmony_ci**示例:**
543e41f4b71Sopenharmony_ci
544e41f4b71Sopenharmony_ci  ```ts
545e41f4b71Sopenharmony_ci  // xxx.ets
546e41f4b71Sopenharmony_ci  @Entry
547e41f4b71Sopenharmony_ci  @Component
548e41f4b71Sopenharmony_ci  struct CanvasExample {
549e41f4b71Sopenharmony_ci    private settings: RenderingContextSettings = new RenderingContextSettings(true)
550e41f4b71Sopenharmony_ci    private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
551e41f4b71Sopenharmony_ci    private path2Db: Path2D = new Path2D()
552e41f4b71Sopenharmony_ci  
553e41f4b71Sopenharmony_ci    build() {
554e41f4b71Sopenharmony_ci      Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
555e41f4b71Sopenharmony_ci        Canvas(this.context)
556e41f4b71Sopenharmony_ci          .width('100%')
557e41f4b71Sopenharmony_ci          .height('100%')
558e41f4b71Sopenharmony_ci          .backgroundColor('#ffff00')
559e41f4b71Sopenharmony_ci          .onReady(() =>{
560e41f4b71Sopenharmony_ci            this.path2Db.rect(20, 20, 100, 100);
561e41f4b71Sopenharmony_ci            this.context.stroke(this.path2Db)
562e41f4b71Sopenharmony_ci          })
563e41f4b71Sopenharmony_ci      }
564e41f4b71Sopenharmony_ci      .width('100%')
565e41f4b71Sopenharmony_ci      .height('100%')
566e41f4b71Sopenharmony_ci    }
567e41f4b71Sopenharmony_ci  }
568e41f4b71Sopenharmony_ci  ```
569e41f4b71Sopenharmony_ci
570e41f4b71Sopenharmony_ci  ![zh-cn_image_0000001193872544](figures/zh-cn_image_0000001193872544.png)
571