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

该接口对应一条直线(LLine对象)。 更多...

类 ILLine 继承关系图:
ILGeomObject ILObject LLine

Public 成员函数

double AcuteAngle (ILLine *line)
 
double AngleTo (ILLine *line)
 
ILLineBisectLine (ILLine *line)
 
double Distance (ILLine *line)
 
void Draw (HDC hdc, double zoomX, double zoomY, double panX, double panY)
 
void FromRotRectRegion (ILRotRectRegion *val)
 
double GetAngle ()
 
ILPointGetEndPoint ()
 
double GetLength ()
 
ILPointGetMidPoint ()
 
ILPointGetStartPoint ()
 
double GetX (double y)
 
double GetY (double x)
 
LPVIntersectType IntersectCircle (ILCircle *circle, ILPoints **intersectPoints)
 
LPVIntersectType IntersectLine (ILLine *line, ILPoint **intersectPoint)
 
LPVIntersectType IntersectPoly (ILPolygon *polygon, ILPoints **intersectPoints)
 
double Parallel (ILLine *line)
 
double Perpendicular (ILPoint *point, ILPoint **rootPoint)
 
ILPolygonResample (int num)
 
ILPolygonResampleByStep (double step, double stepThreshold)
 
void Set (double x1, double y1, double x2, double y2)
 
void Set2 (double midx, double midy, double lineAngle, double length)
 
ILRotRectRegionToRotRectRegion (int exp)
 
ILLineTransform (ILTransform *tf)
 
ILLineTranslate (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 ()
 

属性

double X1 [get, set]
 直线起点的 x 坐标
 
double X2 [get, set]
 直线终点的 x 坐标
 
double Y1 [get, set]
 直线起点的 y 坐标
 
double Y2 [get, set]
 直线终点的 y 坐标
 
- 属性 继承自 ILObject
LString Name [get, set]
 对象的名称,默认为空。
大多数情况下,LPV 算法类并不使用这个名称。
ILDrawable::SetDrawName() 启用,该名称将被绘制在对象的附近 更多...
 

详细描述

该接口对应一条直线(LLine对象)。

成员函数说明

◆ AcuteAngle()

double AcuteAngle ( ILLine line)

计算当前直线和输入直线的夹角(锐角)

参数
[in]line输入的直线
返回值
result返回夹角的角度

◆ AngleTo()

double AngleTo ( ILLine line)

计算当前直线到输入直线的顺时针角度

参数
[in]line输入的直线
返回值
result返回角度

◆ BisectLine()

ILLine* BisectLine ( ILLine line)

计算当前直线和输入直线的平分线

参数
[in]line输入的直线
返回值
result返回平分线

◆ Distance()

double Distance ( ILLine line)

计算当前直线和输入直线的距离。对非平行的直线,该距离指的是直线中点到另一条直线的距离的均值。

参数
[in]line输入的直线
返回值
result返回直线距离

◆ Draw()

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

绘制直线到给定的设备

参见
Use Draw Functions
备注
该函数在 Linux / MacOS 平台暂不可用。

◆ FromRotRectRegion()

void FromRotRectRegion ( ILRotRectRegion val)

根据输入的旋转矩形区域对象,设置该直线的位置。 直线的角度于该旋转矩形区域相同,线长与其宽度相同

◆ GetAngle()

double GetAngle ( )

计算和获取直线的角度

返回值
result返回直线的角度

◆ GetEndPoint()

ILPoint* GetEndPoint ( )

计算和获取直线的终点 \( (X2, Y2) \)

自从
2.1.0

◆ GetLength()

double GetLength ( )

计算和获取直线线段的长度

返回值
result返回直线线段的长度

◆ GetMidPoint()

ILPoint* GetMidPoint ( )

计算和获取直线的中点。

◆ GetStartPoint()

ILPoint* GetStartPoint ( )

计算和获取直线的起点 \( (X1, Y1) \)

自从
2.1.0

◆ GetX()

double GetX ( double  y)

给定直线上一个点的 y 坐标,计算其 x 坐标

参数
[in]y直线上点的 y 坐标
返回值
x返回该点的 x 坐标

◆ GetY()

double GetY ( double  x)

给定直线上一个点的 x 坐标,计算其 y 坐标

参数
[in]x直线上点的 x 坐标
返回值
y返回该点的 y 坐标

◆ IntersectCircle()

LPVIntersectType IntersectCircle ( ILCircle circle,
ILPoints **  intersectPoints 
)

判断当前直线和输入圆形是否相交,若相交,返回 1 或 2 个交点。

参数
[in]circle输入的圆形
[out]intersectPoints返回交点的点集,若当前圆形和输入直线不相交,则该点集为空,若当前圆形和输入直线相切,返回 1 个交点, 若当前圆形和输入直线相交,返回 2 个交点。
返回值
type返回相交的类型,与交点的个数相关, Bounded (2), Partial (1) or Unbounded (0).
参见
ILCircle::IntersectLine().

◆ IntersectLine()

LPVIntersectType IntersectLine ( ILLine line,
ILPoint **  intersectPoint 
)

判断当前直线和输入直线是否相交,若相交,返回交点。

参数
[in]line输入的直线
[out]intersectPoint返回交点
返回值
type返回相交的类型,与交点的个数和位置相关

◆ IntersectPoly()

LPVIntersectType IntersectPoly ( ILPolygon polygon,
ILPoints **  intersectPoints 
)

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

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

◆ Parallel()

double Parallel ( ILLine line)

评价当前直线和输入直线的平行度

参数
[in]line输入的直线
返回值
result返回评价值,在 (0, 1) 范围内。返回值越接近 1,越接近标准平行线。

◆ Perpendicular()

double Perpendicular ( ILPoint point,
ILPoint **  rootPoint 
)

计算输入的点到当前直线的垂足和垂直距离

参数
[in]point输入的点
[out]rootPoint返回垂足
返回值
distance返回垂直距离

◆ Resample()

ILPolygon* Resample ( int  num)

沿该直线采样,生成一个指定顶点数量的非闭合多边形。 直线的起点和终点总是包含在采样结果中。

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

◆ ResampleByStep()

ILPolygon* ResampleByStep ( double  step,
double  stepThreshold 
)

沿该直线采样,按指定距离步长,生成一个非闭合多边形。 直线的起点和终点总是包含在采样结果中。

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

◆ Set()

void Set ( double  x1,
double  y1,
double  x2,
double  y2 
)

设置直线的位置,使用端点坐标

参数
[in]x1直线起点的 x 坐标
[in]y1直线起点的 y 坐标
[in]x2直线终点的 x 坐标
[in]y2直线终点的 y 坐标

◆ Set2()

void Set2 ( double  midx,
double  midy,
double  lineAngle,
double  length 
)

设置直线的位置,使用中点坐标和角度

参数
[in]midx直线中点的 x 坐标
[in]midy直线中点的 y 坐标
[in]lineAngle直线的角度
[in]length直线线段的长度

◆ ToRotRectRegion()

ILRotRectRegion* ToRotRectRegion ( int  exp)

根据当前直线的位置和给定的扩展宽度,生成一个旋转矩形区域

参数
[in]exp输入直线两侧的扩展宽度
返回值
val返回生成的旋转矩形区域对象

◆ Transform()

ILLine* Transform ( ILTransform tf)

应用指定的变换矩阵到当前直线,得到一个新的直线

参数
[in]tf变换矩阵
返回值
返回新的直线

◆ Translate()

ILLine* Translate ( double  offsetX,
double  offsetY 
)

平移当前直线,得到一条新的直线

参数
[in]offsetXx 方向的平移量
[in]offsetYy 方向的平移量
返回值
result返回新的直线