该接口对应一个多边形(LPolygon对象)
更多...
|
void | AddPoints (ILPoints *points) |
|
double | DistanceToPoint (ILPoint *point, LPVAggregation aggType, ILPoint **rootPoint) |
|
double | DistanceToPolygon (ILPolygon *polygon, LPVAggregation aggType, ILPoint **rootPoint1, ILPoint **rootPoint2) |
|
void | Draw (BOOL bFill, HDC hdc, double zoomX, double zoomY, double panX, double panY) |
|
void | FromPolyRegion (ILPolyRegion *val) |
|
double | GetArea () |
|
ILPoint * | GetGravityCenter () |
|
ILCircle * | GetInscribedCircle () |
|
double | GetPerimeter () |
|
ILPoints * | GetPoints () |
|
LPVIntersectType | IntersectLine (ILLine *line, ILPoints **intersectPoints) |
|
BOOL | IntersectPolygon (ILPolygon *polygon, ILPoints **intersectPoints) |
|
ILPoint * | Item (int index) |
|
LPVPointTestResult | PointTest (ILPoint *point) |
|
void | RemovePoints (double lbX, double ubX, double lbY, double ubY) |
|
ILPolygon * | Resample (int num) |
|
ILPolygon * | ResampleByStep (double step, double stepThreshold) |
|
void | Set (int index, double x, double y) |
|
void | SetPolygon (LArray< double > xs, LArray< double > ys, BOOL isClosed) |
|
ILPolyRegion * | ToPolyRegion () |
|
ILPolygon * | Transform (ILTransform *tf) |
|
ILPolygon * | Translate (double offsetX, double offsetY) |
|
int | Count () |
|
BOOL | Empty () |
|
ILObject * | ItemObject (int objIndex) |
|
ILObject * | Copy () |
|
LPVErrorCode | Load (LString filename) |
|
void | Reset () |
|
LPVErrorCode | Save (LString filename) |
|
BOOL | Valid () |
|
|
BOOL | Closed [get, set] |
| 多边形是否闭合
|
|
◆ AddPoints()
◆ DistanceToPoint()
计算输入点到多边形顶点或边的最小距离
- 参数
-
[in] | point | 输入的点 |
[in] | aggType | 聚合方式,仅接受 LPVAggMin 或 LPVAggMax |
[out] | rootPoint | 返回垂足,可能是多边形的某一个顶点,或输入点到多边形的某一条边的垂足 |
- 返回值
-
◆ DistanceToPolygon()
计算该多边形和输入多边形顶点或边之间的最小距离。 例如,红色为当前多边形,绿色为输入多边形,其最小距离和垂足如下图所示:
- 参数
-
[in] | polygon | 输入的多边形 |
[in] | aggType | 聚合方式,仅接受 LPVAggMin 或 LPVAggMax |
[out] | rootPoint1 | 返回当前多边形上的垂足 |
[out] | rootPoint2 | 返回输入前多边形上的垂足 |
- 返回值
-
◆ Draw()
void Draw |
( |
BOOL |
bFill, |
|
|
HDC |
hdc, |
|
|
double |
zoomX, |
|
|
double |
zoomY, |
|
|
double |
panX, |
|
|
double |
panY |
|
) |
| |
◆ FromPolyRegion()
根据输入的多边形区域对象,设置该多边形的位置和顶点坐标。
◆ GetArea()
获取多边形的面积。对于非闭合的多边形,将连接首尾形成闭合形状。
- 返回值
-
◆ GetGravityCenter()
◆ GetInscribedCircle()
◆ GetPerimeter()
◆ GetPoints()
获取多边形的所有顶点到一个点集,用于进行如计算包围矩形、拟合等计算
- 返回值
-
◆ IntersectLine()
判断当前多边形和输入直线是否相交,若相交,返回一个或多个交点。
- 参数
-
[in] | line | 输入的直线 |
[out] | intersectPoints | 返回交点的点集,若当前多边形和输入直线不相交,则该点集为空,否则可能包含一个或多个点。 |
- 返回值
-
- 参见
- ILLine::IntersectPoly().
◆ IntersectPolygon()
判断当前多边形和输入的另一个多边形是否相交,若相交,返回所有交点。
- 参数
-
[in] | polygon | 输入的另一个多边形 |
[out] | intersectPoints | 返回交点的点集,若当前多边形和输入不相交,则该点集为空,否则可能包含一个或多个点。 |
- 返回值
-
result | 若两个多边形相交,返回 True,否则返回 False。 |
◆ Item()
获取多边形中的指定索引的顶点
- 参数
-
[in] | index | 输入指定的索引,从 0 开始但小于总数的数字 |
- 返回值
-
◆ PointTest()
判断输入的点是否在多边形内部、外部或边上。 对于非闭合的多边形,点总是在多边形外部或者边上。
- 参数
-
- 返回值
-
◆ RemovePoints()
void RemovePoints |
( |
double |
lbX, |
|
|
double |
ubX, |
|
|
double |
lbY, |
|
|
double |
ubY |
|
) |
| |
删除多边形中在指定范围中的顶点
- 参数
-
[in] | lbX | 指定删除范围的 x 坐标下限 |
[in] | ubX | 指定删除范围的 x 坐标上限 |
[in] | lbY | 指定删除范围的 y 坐标下限 |
[in] | ubY | 指定删除范围的 y 坐标上限 |
◆ Resample()
◆ ResampleByStep()
ILPolygon* ResampleByStep |
( |
double |
step, |
|
|
double |
stepThreshold |
|
) |
| |
沿该多边形采样,按指定距离步长,生成一个新的多边形。 对于非闭合多边形,其端点总是包含在采样结果中。
- 参数
-
[in] | step | 采样距离步长 |
[in] | stepThreshold | 若最后一个采样点与端点的剩余距离小于该设定阈值,则忽略该采样点。 默认设置为 0,表示使用 \( Step / 4 \) 距离作为阈值。 |
- 返回值
-
- 参见
- Resample()
◆ Set()
void Set |
( |
int |
index, |
|
|
double |
x, |
|
|
double |
y |
|
) |
| |
修改多边形的给定索引对应的顶点
- 参数
-
[in] | index | 输入指定的索引,从 0 开始但小于总数的数字,设置为 -1 在最后插入一个新的顶点 |
[in] | x | 顶点新的 x 坐标 |
[in] | y | 顶点新的 y 坐标 |
◆ SetPolygon()
void SetPolygon |
( |
LArray< double > |
xs, |
|
|
LArray< double > |
ys, |
|
|
BOOL |
isClosed |
|
) |
| |
设置多边形中的顶点
- 参数
-
[in] | xs | 多边形中所有顶点的 x 坐标 |
[in] | ys | 多边形中所有顶点的 y 坐标 |
[in] | isClosed | 是否为闭合多边形 |
◆ ToPolyRegion()
根据当前多边形的位置和顶点坐标,生成一个多边形区域
◆ Transform()
应用指定的变换矩阵到当前多边形,得到一个新的多边形
- 参数
-
- 返回值
-
◆ Translate()
ILPolygon* Translate |
( |
double |
offsetX, |
|
|
double |
offsetY |
|
) |
| |
平移当前多边形,生成一个新的多边形
- 参数
-
[in] | offsetX | x 方向的平移量 |
[in] | offsetY | y 方向的平移量 |
- 返回值
-