# gdip.path 库模块帮助文档

## gdip 成员列表 <a id="gdip" href="#gdip">&#x23;</a>

### gdip.AddPathArc <a id="gdip.AddPathArc" href="#gdip.AddPathArc">&#x23;</a>
`$.api("GdipAddPathArc","int(PTR path,float x,float y,float width,float height,float startAngle,float sweepAngle)")`

### gdip.AddPathBezier <a id="gdip.AddPathBezier" href="#gdip.AddPathBezier">&#x23;</a>
`$.api("GdipAddPathBezier","int(PTR path,float x1,float y1,float x2,float y2,float x3,float y3,float x4,float y4)")`

### gdip.AddPathBeziers <a id="gdip.AddPathBeziers" href="#gdip.AddPathBeziers">&#x23;</a>
`$.api("GdipAddPathBeziers", "int(PTR path, struct points, int count)");`

### gdip.AddPathClosedCurve <a id="gdip.AddPathClosedCurve" href="#gdip.AddPathClosedCurve">&#x23;</a>
`$.api("GdipAddPathClosedCurve2","int(PTR path,struct Points,int count,float tension)")`

### gdip.AddPathCurve <a id="gdip.AddPathCurve" href="#gdip.AddPathCurve">&#x23;</a>
`$.api("GdipAddPathCurve2","int(PTR path,struct Points,int count,float tension)")`

### gdip.AddPathEllipse <a id="gdip.AddPathEllipse" href="#gdip.AddPathEllipse">&#x23;</a>
`$.api("GdipAddPathEllipse","int(PTR path,float x,float y,float width,float height)")`

### gdip.AddPathLine <a id="gdip.AddPathLine" href="#gdip.AddPathLine">&#x23;</a>
`$.api("GdipAddPathLine","int(PTR path,float x1,float y1,float x2,float y2)")`

### gdip.AddPathPath <a id="gdip.AddPathPath" href="#gdip.AddPathPath">&#x23;</a>
`$.api("GdipAddPathPath","int(PTR path,pointer addingPath,int bConnect)")`

### gdip.AddPathPie <a id="gdip.AddPathPie" href="#gdip.AddPathPie">&#x23;</a>
`$.api("GdipAddPathPie","int(PTR path,float x,float y,float width,float height,float startAngle,float sweepAngle)")`

### gdip.AddPathPolygon <a id="gdip.AddPathPolygon" href="#gdip.AddPathPolygon">&#x23;</a>
`$.api("GdipAddPathPolygon","int(PTR path,struct Points,int count)")`

### gdip.AddPathRectangle <a id="gdip.AddPathRectangle" href="#gdip.AddPathRectangle">&#x23;</a>
`$.api("GdipAddPathRectangle","int(PTR path,float x,float y,float width,float height)")`

### gdip.AddPathString <a id="gdip.AddPathString" href="#gdip.AddPathString">&#x23;</a>
`$.api("GdipAddPathString","int(PTR path,string str,int Length,pointer family,int style,float emSize,struct& layoutRect,ptr strFmt)")`

### gdip.ClonePath <a id="gdip.ClonePath" href="#gdip.ClonePath">&#x23;</a>
`$.api("GdipClonePath","int(PTR path,int& clonePath)")`

### gdip.ClosePathFigure <a id="gdip.ClosePathFigure" href="#gdip.ClosePathFigure">&#x23;</a>
`$.api("GdipClosePathFigure","int(PTR path)")`

### gdip.ClosePathFigures <a id="gdip.ClosePathFigures" href="#gdip.ClosePathFigures">&#x23;</a>
`$.api("GdipClosePathFigures","int(PTR path)")`

### gdip.CreatePath <a id="gdip.CreatePath" href="#gdip.CreatePath">&#x23;</a>
`$.api("GdipCreatePath","int(int brushmode,pointer& Path)")`

### gdip.DeletePath <a id="gdip.DeletePath" href="#gdip.DeletePath">&#x23;</a>
`$.api("GdipDeletePath","int(PTR path)")`

### gdip.ResetPath <a id="gdip.ResetPath" href="#gdip.ResetPath">&#x23;</a>
`$.api("GdipResetPath","int(PTR path)")`

### gdip.StartPathFigure <a id="gdip.StartPathFigure" href="#gdip.StartPathFigure">&#x23;</a>
`$.api("GdipStartPathFigure","int(PTR path)")`

### gdip.path() <a id="gdip.path" href="#gdip.path">&#x23;</a>
[返回对象:gdiPathObject](#gdiPathObject)

### gdip.path(_GdipFillMode) <a id="gdip.path" href="#gdip.path">&#x23;</a>
创建路径对象

## gdip.path 成员列表 <a id="gdip.path" href="#gdip.path">&#x23;</a>

### gdip.path.is() <a id="gdip.path.is" href="#gdip.path.is">&#x23;</a>
参数 @1 是否 gdip.bitmap 对象

## gdiPathObject 成员列表 <a id="gdiPathObject" href="#gdiPathObject">&#x23;</a>

### gdiPathObject.addArc() <a id="gdiPathObject.addArc" href="#gdiPathObject.addArc">&#x23;</a>
[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.addArc(x,y,width,height,startAngle,sweepAngle) <a id="gdiPathObject.addArc" href="#gdiPathObject.addArc">&#x23;</a>
添加椭圆弧  
startAngle:起始角度,以度为单位从X轴顺时针测量  
sweepAngle:startAngle 和弧线末尾之间的角度nn返回对象自身。

### gdiPathObject.addBezier() <a id="gdiPathObject.addBezier" href="#gdiPathObject.addBezier">&#x23;</a>
[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.addBezier(point1,point2,point3,point4) <a id="gdiPathObject.addBezier" href="#gdiPathObject.addBezier">&#x23;</a>
添加贝塞尔曲线。  
参数 @point1 到 @point4 可指定为 `::POINTF` 结构体或者包含 x,y 字段的普通表对象。  
四个坐标点分别为：起始锚点，起始控制点，结束锚点，结束控制点。nn返回对象自身。

### gdiPathObject.addBezier(x1,y1,x2,y2,x3,y3,x4,y4) <a id="gdiPathObject.addBezier" href="#gdiPathObject.addBezier">&#x23;</a>
添加贝塞尔曲线。  
4个坐标点分别为：起始锚点，起始控制点，结束锚点，结束控制点nn返回对象自身。

### gdiPathObject.addBeziers <a id="gdiPathObject.addBeziers" href="#gdiPathObject.addBeziers">&#x23;</a>
连续绘制多次贝塞尔曲线。

### gdiPathObject.addBeziers(points...) <a id="gdiPathObject.addBeziers" href="#gdiPathObject.addBeziers">&#x23;</a>
参数可指定一个坐标点数组或展开为多个坐标点参数。  
使用 ::POINTF 结构体指定坐标点，首个贝塞尔曲线指定 4 个点。  
后续的每个塞尔曲线需要指定 3 个点，上次的终点自动成为下次的起点。  
坐标点数目大于 4 但缺少最后一个点时可自动闭合到开始位置

### gdiPathObject.addBeziers(x1,y1,y2,y2...) <a id="gdiPathObject.addBeziers" href="#gdiPathObject.addBeziers">&#x23;</a>
= 参数可指定一个数值数组或展开为多个数值参数。  
每 2 个数值指定一个坐标点，首个贝塞尔曲线指定 4 个点。  
后续的每个塞尔曲线需要指定 3 个点，上次的终点自动成为下次的起点。  
坐标点数目大于 4 但缺少最后一个点时可自动闭合到开始位置

### gdiPathObject.addClosedCurve() <a id="gdiPathObject.addClosedCurve" href="#gdiPathObject.addClosedCurve">&#x23;</a>
[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.addClosedCurve(points...) <a id="gdiPathObject.addClosedCurve" href="#gdiPathObject.addClosedCurve">&#x23;</a>
添加闭合曲线。  
- 参数 @points 可指定曲线经过的多个坐标点（可指定一个数组或展开为多个参数）。  
每个坐标点可以是 :: POINTF 创建的格式为 `{float x, float y}` 的结构体。  
至少要指定三个坐标点才能形成曲线。nn返回对象自身。

### gdiPathObject.addClosedCurve(x1,y1,y2,y2...) <a id="gdiPathObject.addClosedCurve" href="#gdiPathObject.addClosedCurve">&#x23;</a>
添加闭合曲线。  
- 参数可指定曲线经过的多个坐标点（可指定一个数组或展开为多个参数）。  
用成对的数值表示单个坐标点，例如 `x1,y1` 每表示第一个坐标点。  
至少要指定三个坐标点才能形成曲线。nn返回对象自身。

### gdiPathObject.addClosedCurve2(tension,points...) <a id="gdiPathObject.addClosedCurve2" href="#gdiPathObject.addClosedCurve2">&#x23;</a>
添加闭合曲线。  
- 参数 tension 用非负实数指定张力，控制曲线的长度和弯曲方式  
- 参数 @points 可指定曲线经过的多个坐标点（可指定一个数组或展开为多个参数）。  
每个坐标点可以是 :: POINTF 创建的格式为 `{float x, float y}` 的结构体。  
至少要指定三个坐标点才能形成曲线。nn返回对象自身。

### gdiPathObject.addClosedCurve2(tension,x1,y1,y2,y2...) <a id="gdiPathObject.addClosedCurve2" href="#gdiPathObject.addClosedCurve2">&#x23;</a>
添加闭合曲线。  
- 参数 tension 用非负实数指定张力，控制曲线的长度和弯曲方式  
- 参数 @2 开始可指定曲线经过的多个坐标点（可指定一个数组或展开为多个参数）。  
用成对的数值表示单个坐标点，例如 `x1,y1` 每表示第一个坐标点。  
至少要指定三个坐标点才能形成曲线。nn返回对象自身。

### gdiPathObject.addCurve() <a id="gdiPathObject.addCurve" href="#gdiPathObject.addCurve">&#x23;</a>
[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.addCurve(points...) <a id="gdiPathObject.addCurve" href="#gdiPathObject.addCurve">&#x23;</a>
添加曲线。  
- 参数 @points 可指定曲线经过的多个坐标点（可指定一个数组或展开为多个参数）。  
每个坐标点可以是 :: POINTF 创建的格式为 `{float x, float y}` 的结构体。  
至少要指定两个坐标点。nn返回对象自身。

### gdiPathObject.addCurve(x1,y1,y2,y2...) <a id="gdiPathObject.addCurve" href="#gdiPathObject.addCurve">&#x23;</a>
添加曲线。  
- 参数可指定曲线经过的多个坐标点（可指定一个数组或展开为多个参数）。  
用成对的数值表示单个坐标点，例如 `x1,y1` 每表示第一个坐标点。  
至少要指定两个坐标点。nn返回对象自身。

### gdiPathObject.addCurve2(tension,points...) <a id="gdiPathObject.addCurve2" href="#gdiPathObject.addCurve2">&#x23;</a>
添加曲线。  
- 参数 tension 用非负实数指定张力，控制曲线的长度和弯曲方式  
- 参数 @points 可指定曲线经过的多个坐标点（可指定一个数组或展开为多个参数）。  
每个坐标点可以是 :: POINTF 创建的格式为 `{float x, float y}` 的结构体。  
至少要指定两个坐标点。nn返回对象自身。

### gdiPathObject.addCurve2(tension,x1,y1,y2,y2...) <a id="gdiPathObject.addCurve2" href="#gdiPathObject.addCurve2">&#x23;</a>
添加曲线。  
- 参数 tension 用非负实数指定张力，控制曲线的长度和弯曲方式  
- 参数 @2 开始可指定曲线经过的多个坐标点（可指定一个数组或展开为多个参数）。  
用成对的数值表示单个坐标点，例如 `x1,y1` 每表示第一个坐标点。  
至少要指定两个坐标点。nn返回对象自身。

### gdiPathObject.addEllipse() <a id="gdiPathObject.addEllipse" href="#gdiPathObject.addEllipse">&#x23;</a>
[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.addEllipse(rect) <a id="gdiPathObject.addEllipse" href="#gdiPathObject.addEllipse">&#x23;</a>
添加椭圆。  
参数 @rect 可指定 ::RECT 或 ::RECTF 结构体。nn返回对象自身。

### gdiPathObject.addEllipse(x,y,width,height) <a id="gdiPathObject.addEllipse" href="#gdiPathObject.addEllipse">&#x23;</a>
添加椭圆。  
参数 x,y  依次指定左、上位置，width,height 依次指定宽、高。nn返回对象自身。

### gdiPathObject.addLine() <a id="gdiPathObject.addLine" href="#gdiPathObject.addLine">&#x23;</a>
[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.addLine(pioint1,point1) <a id="gdiPathObject.addLine" href="#gdiPathObject.addLine">&#x23;</a>
添加直线。  
参数 @point1,@point2 指定开始与结束坐标，  
坐标为包含 x,y 字段（数值）的任意表对象。nn返回对象自身。

### gdiPathObject.addLine(x1,y1,x2,y2) <a id="gdiPathObject.addLine" href="#gdiPathObject.addLine">&#x23;</a>
添加直线nn返回对象自身。

添加直线。  
参数 @x1,@y1,@x2,@y2 指定开始与结束坐标nn返回对象自身。

### gdiPathObject.addLines <a id="gdiPathObject.addLines" href="#gdiPathObject.addLines">&#x23;</a>
绘制折线（多段线）  
返回对象自身。  
addLines 与 addPolyline 是同一个方法的不同名称

### gdiPathObject.addLines() <a id="gdiPathObject.addLines" href="#gdiPathObject.addLines">&#x23;</a>
[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.addLines(points...) <a id="gdiPathObject.addLines" href="#gdiPathObject.addLines">&#x23;</a>
- 参数 @points 可指定多边形经过的多个坐标点（可指定一个数组或展开为多个参数）。  
每个坐标点可以是 :: POINTF 创建的格式为 `{float x, float y}` 的结构体。  
至少要指定两个坐标点nn返回对象自身。

### gdiPathObject.addLines(x1,y1,y2,y2...) <a id="gdiPathObject.addLines" href="#gdiPathObject.addLines">&#x23;</a>
- 参数可指定多边形经过的多个坐标点（可指定一个数组或展开为多个参数）。  
用成对的数值表示单个坐标点，例如 `x1,y1` 每表示第一个坐标点。  
至少要指定两个坐标点nn返回对象自身。

### gdiPathObject.addPath() <a id="gdiPathObject.addPath" href="#gdiPathObject.addPath">&#x23;</a>
[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.addPath(路径对象) <a id="gdiPathObject.addPath" href="#gdiPathObject.addPath">&#x23;</a>
添加另一个路径对象。  
参数 @1 指定 gdip.path 对象。  

返回对象自身。

### gdiPathObject.addPie() <a id="gdiPathObject.addPie" href="#gdiPathObject.addPie">&#x23;</a>
[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.addPie(x,y,width,height,startAngle,sweepAngle) <a id="gdiPathObject.addPie" href="#gdiPathObject.addPie">&#x23;</a>
添加一个扇形轮廓  
startAngle:起始角度,以度为单位从X轴顺时针测量  
sweepAngle:startAngle 和弧线末尾之间的角度nn返回对象自身。

### gdiPathObject.addPolygon() <a id="gdiPathObject.addPolygon" href="#gdiPathObject.addPolygon">&#x23;</a>
[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.addPolygon(points...) <a id="gdiPathObject.addPolygon" href="#gdiPathObject.addPolygon">&#x23;</a>
添加多边形。  
- 参数 @points 可指定多边形经过的多个坐标点（可指定一个数组或展开为多个参数）。  
每个坐标点可以是 :: POINTF 创建的格式为 `{float x, float y}` 的结构体。  
至少要指定两个坐标点nn返回对象自身。

### gdiPathObject.addPolygon(x1,y1,y2,y2...) <a id="gdiPathObject.addPolygon" href="#gdiPathObject.addPolygon">&#x23;</a>
添加多边形。  
- 参数可指定多边形经过的多个坐标点（可指定一个数组或展开为多个参数）。  
用成对的数值表示单个坐标点，例如 `x1,y1` 每表示第一个坐标点。  
至少要指定两个坐标点nn返回对象自身。

### gdiPathObject.addPolyline <a id="gdiPathObject.addPolyline" href="#gdiPathObject.addPolyline">&#x23;</a>
绘制折线（多段线）  
返回对象自身。  
addLines 与 addPolyline 是同一个方法的不同名称

### gdiPathObject.addPolyline() <a id="gdiPathObject.addPolyline" href="#gdiPathObject.addPolyline">&#x23;</a>
[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.addPolyline(points...) <a id="gdiPathObject.addPolyline" href="#gdiPathObject.addPolyline">&#x23;</a>
- 参数 @points 可指定多边形经过的多个坐标点（可指定一个数组或展开为多个参数）。  
每个坐标点可以是 :: POINTF 创建的格式为 `{float x, float y}` 的结构体。  
至少要指定两个坐标点nn返回对象自身。

### gdiPathObject.addPolyline(x1,y1,y2,y2...) <a id="gdiPathObject.addPolyline" href="#gdiPathObject.addPolyline">&#x23;</a>
- 参数可指定多边形经过的多个坐标点（可指定一个数组或展开为多个参数）。  
用成对的数值表示单个坐标点，例如 `x1,y1` 每表示第一个坐标点。  
至少要指定两个坐标点nn返回对象自身。

### gdiPathObject.addRectangle() <a id="gdiPathObject.addRectangle" href="#gdiPathObject.addRectangle">&#x23;</a>
[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.addRectangle(rect) <a id="gdiPathObject.addRectangle" href="#gdiPathObject.addRectangle">&#x23;</a>
添加矩形。  
参数 @rect 可指定 ::RECT 或 ::RECTF 结构体。nn返回对象自身。

### gdiPathObject.addRectangle(x,y,width,height) <a id="gdiPathObject.addRectangle" href="#gdiPathObject.addRectangle">&#x23;</a>
添加矩形。  
参数 x,y  依次指定左、上位置，width,height 依次指定宽、高。nn返回对象自身。

### gdiPathObject.addRoundRect() <a id="gdiPathObject.addRoundRect" href="#gdiPathObject.addRoundRect">&#x23;</a>
[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.addRoundRect(rect,radius) <a id="gdiPathObject.addRoundRect" href="#gdiPathObject.addRoundRect">&#x23;</a>
添加圆角矩形。  

- 参数 @rect 可指定 ::RECT 或 ::RECTF 结构体。  
- 参数 @radius 指定圆角大小。  
也可以使用四个参数分别指定四个方向的员角大小。  
参数自左上角开始顺时针为序:左上,右上,右下,左下nn返回对象自身。

### gdiPathObject.addRoundRect(x,y,width,height,radius) <a id="gdiPathObject.addRoundRect" href="#gdiPathObject.addRoundRect">&#x23;</a>
添加圆角矩形。  

- 参数 x,y 指定左上角坐标，width,height 指定宽高。  
- 参数 @radius 指定圆角大小。nn返回对象自身。

### gdiPathObject.addString() <a id="gdiPathObject.addString" href="#gdiPathObject.addString">&#x23;</a>
[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.addString(str,family,style,emSize,rclayout,strFormat ) <a id="gdiPathObject.addString" href="#gdiPathObject.addString">&#x23;</a>
添加字符串 nn返回对象自身。

### gdiPathObject.closeAllFigure() <a id="gdiPathObject.closeAllFigure" href="#gdiPathObject.closeAllFigure">&#x23;</a>
闭合所有图形开始新图。  
返回对象自身。  

[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.closeFigure() <a id="gdiPathObject.closeFigure" href="#gdiPathObject.closeFigure">&#x23;</a>
闭合当前图形开始新图。  
返回对象自身。  

[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.delete() <a id="gdiPathObject.delete" href="#gdiPathObject.delete">&#x23;</a>
释放路径对象

### gdiPathObject.draw() <a id="gdiPathObject.draw" href="#gdiPathObject.draw">&#x23;</a>
[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.draw(graphics,pen) <a id="gdiPathObject.draw" href="#gdiPathObject.draw">&#x23;</a>
在参数 @graphics 指定的画板上使用画笔 @pen 绘图。  
- @graphics 指定 gdip.graphics 对象。  
- @pen 指定 gdip.pen 对象。  

返回对象自身。

### gdiPathObject.fill() <a id="gdiPathObject.fill" href="#gdiPathObject.fill">&#x23;</a>
[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.fill(graphics,brush) <a id="gdiPathObject.fill" href="#gdiPathObject.fill">&#x23;</a>
在参数 @graphics 指定的画板上使用画刷 @brush 填充。  
- @graphics 指定 gdip.graphics 对象。  
- @brush 指定 gdip.solidBrush 等画刷对象  

返回对象自身。

### gdiPathObject.lastPoint() <a id="gdiPathObject.lastPoint" href="#gdiPathObject.lastPoint">&#x23;</a>
返回路径中的最后一个点（::POINTF 结构体）  

[返回对象:pointObject](https://www.aardio.com/zh-cn/docs/library-reference/gdip/core.html#pointObject)

### gdiPathObject.pointCount <a id="gdiPathObject.pointCount" href="#gdiPathObject.pointCount">&#x23;</a>
返回路径对象添加的数据点总数

### gdiPathObject.points <a id="gdiPathObject.points" href="#gdiPathObject.points">&#x23;</a>
只读属性。  
返回包含所有数据点的数组，数组元素为 ::POINTF 结构体。

### gdiPathObject.reset() <a id="gdiPathObject.reset" href="#gdiPathObject.reset">&#x23;</a>
重置为空路径。  
返回对象自身。  

[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.reverse() <a id="gdiPathObject.reverse" href="#gdiPathObject.reverse">&#x23;</a>
反转定义此路径的线条和曲线的点的顺序。  

[返回对象:gdiPathObject](#gdiPathObject)

### gdiPathObject.startFigure() <a id="gdiPathObject.startFigure" href="#gdiPathObject.startFigure">&#x23;</a>
不闭合开始新图形。  
返回对象自身。  

[返回对象:gdiPathObject](#gdiPathObject)
