Leaper Vision Toolkit
中文 / English 2.x
Public 成员函数 | 属性
ILPolygon接口 参考

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

类 ILPolygon 继承关系图:
ILGeomObject ILObject LPolygon

Public 成员函数

void AddPoints (ILPoints *points)
 
int Count ()
 
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 成员函数 继承自 ILGeomObject
void Drag (LPVGeomHandle geomHandle, int posX, int posY, double zoomX, double zoomY, double panX, double panY)
 
void EnableHandle (LPVGeomHandle geomHandle, BOOL enabled)
 
LPVGeomHandle HitTest (int posX, int posY, double zoomX, double zoomY, double panX, double panY)
 
void ScaleTo (double factorX, double factorY)
 
void TransformTo (ILTransform *tf)
 
void TranslateTo (double offsetX, double offsetY)
 
- Public 成员函数 继承自 ILObject
ILObjectCopy ()
 
LPVErrorCode Load (LString filename)
 
void Reset ()
 
LPVErrorCode Save (LString filename)
 
BOOL Valid ()
 

属性

BOOL Closed [get, set]
 多边形是否闭合
 
- 属性 继承自 ILObject
LString Name [get, set]
 对象的名称,默认为空。
大多数情况下,LPV 算法类并不使用这个名称。
ILDrawable::SetDrawName() 启用,该名称将被绘制在对象的附近 更多...
 

详细描述

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

成员函数说明

◆ AddPoints()

void AddPoints ( ILPoints points)

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

参数
[in]points输入的点集

◆ Count()

int Count ( )

获取多边形顶点的总数

◆ 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返回新的多边形