Leaper Vision Toolkit
Public 成员函数 | 属性
ILPolygon接口 参考

该接口对应一个多边形(LPolygon对象) 更多...

类 ILPolygon 继承关系图:
ILObjects ILObject LPolygon

Public 成员函数

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 ()
 
ILPointGetGravityCenter ()
 
ILCircleGetInscribedCircle ()
 
double GetPerimeter ()
 
ILPointsGetPoints ()
 
LPVIntersectType IntersectLine (ILLine *line, ILPoints **intersectPoints)
 
BOOL IntersectPolygon (ILPolygon *polygon, ILPoints **intersectPoints)
 
ILPointItem (int index)
 
LPVPointTestResult PointTest (ILPoint *point)
 
void RemovePoints (double lbX, double ubX, double lbY, double ubY)
 
ILPolygonResample (int num)
 
ILPolygonResampleByStep (double step, double stepThreshold)
 
void Set (int index, double x, double y)
 
void SetPolygon (LArray< double > xs, LArray< double > ys, BOOL isClosed)
 
ILPolyRegionToPolyRegion ()
 
ILPolygonTransform (ILTransform *tf)
 
ILPolygonTranslate (double offsetX, double offsetY)
 
- Public 成员函数 继承自 ILObjects
int Count ()
 
BOOL Empty ()
 
ILObjectItemObject (int objIndex)
 
- Public 成员函数 继承自 ILObject
ILObjectCopy ()
 
LPVErrorCode Load (LString filename)
 
void Reset ()
 
LPVErrorCode Save (LString filename)
 
BOOL Valid ()
 

属性

BOOL Closed [get, set]
 多边形是否闭合
 

详细描述

该接口对应一个多边形(LPolygon对象)

成员函数说明

◆ AddPoints()

void AddPoints ( ILPoints points)

将输入点集中的点添加到多边形的末尾

参数
[in]points输入的点集

◆ DistanceToPoint()

double DistanceToPoint ( ILPoint point,
LPVAggregation  aggType,
ILPoint **  rootPoint 
)

计算输入点到多边形顶点或边的最小距离

参数
[in]point输入的点
[in]aggType聚合方式,仅接受 LPVAggMin 或 LPVAggMax
[out]rootPoint返回垂足,可能是多边形的某一个顶点,或输入点到多边形的某一条边的垂足
返回值
val返回最小距离

◆ DistanceToPolygon()

double DistanceToPolygon ( ILPolygon polygon,
LPVAggregation  aggType,
ILPoint **  rootPoint1,
ILPoint **  rootPoint2 
)

计算该多边形和输入多边形顶点或边之间的最小距离。 例如,红色为当前多边形,绿色为输入多边形,其最小距离和垂足如下图所示:

参数
[in]polygon输入的多边形
[in]aggType聚合方式,仅接受 LPVAggMin 或 LPVAggMax
[out]rootPoint1返回当前多边形上的垂足
[out]rootPoint2返回输入前多边形上的垂足
返回值
val返回最小距离

◆ Draw()

void Draw ( BOOL  bFill,
HDC  hdc,
double  zoomX,
double  zoomY,
double  panX,
double  panY 
)

绘制多边形到给定的设备上

参数
[in]bFill是否使用当前笔刷填充该多边形
参见
Use Draw Functions
备注
该函数在 Linux / MacOS 平台暂不可用。

◆ FromPolyRegion()

void FromPolyRegion ( ILPolyRegion val)

根据输入的多边形区域对象,设置该多边形的位置和顶点坐标。

◆ GetArea()

double GetArea ( )

获取多边形的面积。对于非闭合的多边形,将连接首尾形成闭合形状。

返回值
val返回多边形的面积

◆ GetGravityCenter()

ILPoint* GetGravityCenter ( )

获取该多边形的重心

◆ GetInscribedCircle()

ILCircle* GetInscribedCircle ( )

计算该多边形的内接圆

◆ GetPerimeter()

double GetPerimeter ( )

获取多边形的周长

返回值
val返回多边形的周长

◆ GetPoints()

ILPoints* GetPoints ( )

获取多边形的所有顶点到一个点集,用于进行如计算包围矩形、拟合等计算

返回值
val返回顶点的点集

◆ IntersectLine()

LPVIntersectType IntersectLine ( ILLine line,
ILPoints **  intersectPoints 
)

判断当前多边形和输入直线是否相交,若相交,返回一个或多个交点。

参数
[in]line输入的直线
[out]intersectPoints返回交点的点集,若当前多边形和输入直线不相交,则该点集为空,否则可能包含一个或多个点。
返回值
type返回相交的类型,与交点中在直线线段上的个数相关, Bounded (所有), Partial (部分) or Unbounded (无).
参见
ILLine::IntersectPoly().

◆ IntersectPolygon()

BOOL IntersectPolygon ( ILPolygon polygon,
ILPoints **  intersectPoints 
)

判断当前多边形和输入的另一个多边形是否相交,若相交,返回所有交点。

参数
[in]polygon输入的另一个多边形
[out]intersectPoints返回交点的点集,若当前多边形和输入不相交,则该点集为空,否则可能包含一个或多个点。
返回值
result若两个多边形相交,返回 True,否则返回 False。

◆ Item()

ILPoint* Item ( int  index)

获取多边形中的指定索引的顶点

参数
[in]index输入指定的索引,从 0 开始但小于总数的数字
返回值
point返回该索引对应的顶点

◆ PointTest()

LPVPointTestResult PointTest ( ILPoint point)

判断输入的点是否在多边形内部、外部或边上。 对于非闭合的多边形,点总是在多边形外部或者边上。

参数
[in]point输入的点
返回值
val返回判断结果

◆ RemovePoints()

void RemovePoints ( double  lbX,
double  ubX,
double  lbY,
double  ubY 
)

删除多边形中在指定范围中的顶点

参数
[in]lbX指定删除范围的 x 坐标下限
[in]ubX指定删除范围的 x 坐标上限
[in]lbY指定删除范围的 y 坐标下限
[in]ubY指定删除范围的 y 坐标上限

◆ Resample()

ILPolygon* Resample ( int  num)

沿该多边形采样,生成一个指定顶点数量的多边形。 对于非闭合多边形,其端点总是包含在采样结果中。

参数
[in]num采样顶点数量,至少为 3
返回值
result返回采样得到的结果多边形
参见
ResampleByStep()

◆ ResampleByStep()

ILPolygon* ResampleByStep ( double  step,
double  stepThreshold 
)

沿该多边形采样,按指定距离步长,生成一个新的多边形。 对于非闭合多边形,其端点总是包含在采样结果中。

参数
[in]step采样距离步长
[in]stepThreshold若最后一个采样点与端点的剩余距离小于该设定阈值,则忽略该采样点。 默认设置为 0,表示使用 \( Step / 4 \) 距离作为阈值。
返回值
result返回采样得到的结果多边形
参见
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()

ILPolyRegion* ToPolyRegion ( )

根据当前多边形的位置和顶点坐标,生成一个多边形区域

◆ Transform()

ILPolygon* Transform ( ILTransform tf)

应用指定的变换矩阵到当前多边形,得到一个新的多边形

参数
[in]tf变换矩阵
返回值
返回新的多边形

◆ Translate()

ILPolygon* Translate ( double  offsetX,
double  offsetY 
)

平移当前多边形,生成一个新的多边形

参数
[in]offsetXx 方向的平移量
[in]offsetYy 方向的平移量
返回值
results返回新的多边形