表格线识别通用库文档
载入中...
搜索中...
未找到
cm::Line类 参考

线类 更多...

#include <line.hpp>

cm::Line 的协作图:

struct  CompareByCoordinate
 线的比较仿函数 更多...
 
struct  CompareByLength
 线的比较仿函数 更多...
 
struct  GEEquation
 线的一般方程 更多...
 
struct  Hash
 线的哈希仿函数 更多...
 
struct  SIEquation
 线的斜截式方程 更多...
 

Public 成员函数

 Line ()
 线类的默认构造函数
 
 Line (int pt1_x, int pt1_y, int pt2_x, int pt2_y)
 线类的带参构造函数
 
 Line (const std::initializer_list< int > &initial_list)
 线类的初始化列表构造函数
 
 Line (const Point2i &pt1, const Point2i &pt2)
 线类的带参构造函数
 
 Line (const cv::Vec4i &line)
 线类的带参构造函数
 
 Line (const std::vector< int > &list)
 线类的带参构造函数
 
 Line (const Line &line)
 线类的拷贝构造函数
 
 ~Line ()
 线类的析构函数
 
 operator cv::Vec4i () const
 将线类转换为 OpenCV 的 cv::Vec4i 类型
 
 operator std::vector< int > () const
 将线类转换为 std::vector<int> 类型
 
intoperator[] (size_t index)
 线类重载方括号运算符
 
const intoperator[] (size_t index) const
 线类重载方括号运算符
 
LineType Type () const
 获取线类型
 
double Length (bool is_rough=false) const
 获取线的长度
 
GEEquation GECoefficients () const
 计算线的一般方程系数
 
SIEquation SICoefficients () const
 计算线的斜截式系数
 
template<typename T >
double DistanceTo (const Point< T > &pt) const
 计算点到直线的距离
 
double DistanceTo (const Line &line, LineDistanceType type) const
 计算线到线的距离
 
LineTranslate (int dx, int dy)
 线的坐标平移操作
 
LineScale (double factor, bool round=true)
 线的坐标缩放操作
 
template<typename T >
LineRotate (double angle, const Point< T > &center={0, 0})
 线的坐标旋转操作
 
LineTidyLine ()
 整理线的端点顺序
 
Point2d Intersect (const Line &line) const
 计算两线的交点
 
Point2d Intersect (const GEEquation &ge) const
 通过另一条线的一般方程计算两线的交点
 
Point2d Intersect (const SIEquation &si) const
 通过另一条线的斜截式方程计算两线的交点
 
Point2d Midpoint () const
 获取线段中点坐标
 
double X (Statistic type) const
 获取线的 X 坐标
 
double Y (Statistic type) const
 获取线的 Y 坐标
 
LineLimitX (const Interval &interval)
 限制线的 x 坐标在指定区间范围内
 
LineLimitY (const Interval &interval)
 限制线的 y 坐标在指定区间范围内
 
bool InInterval (const Interval &x_interval, const Interval &y_interval) const
 判断线是否在区间内
 
bool IsIntersect (const Line &line, IntersectType type=INTERSECT_XY, bool is_include_boundaries=false) const
 判断两线是否相交
 
bool IsPoint () const
 判断线是否是一个点
 
Line SimpleConnect (const Line &line) const
 简单合并线
 
bool IsAligned (const Line &line, Position align_direction, int threshold=5) const
 判断两根线是否对齐
 
bool IsNear (const Line &line, double threshold=5.0, Statistic type=MAXIMUM) const
 判断两线是否接近
 

Public 属性

Point2i pt1
 线的第一个点(默认:对于横线是左边的点;对于竖线是上面的点)
 
Point2i pt2
 线的第二个点(默认:对于横线是右边的点,对于竖线是下面的点)
 

友元

bool operator== (const Line &line1, const Line &line2)
 线类重载等于号
 
bool operator!= (const Line &line1, const Line &line2)
 线类重载不等于号
 
std::ostream & operator<< (std::ostream &out, const Line &line)
 线类重载输出流运算符
 

详细描述

线类

该类表示二维空间中的一条两点构成的线段,提供了线段的一般方程和斜截式的表示方法,并包含了直线的各种操作和计算方法。

作者
dreamy-xay
日期
2023-12-04

在文件 line.hpp31 行定义.

构造及析构函数说明

◆ Line() [1/7]

cm::Line::Line ( )
inline

线类的默认构造函数

创建一个线对象,并初始化线的两个端点坐标为默认值。

作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp469 行定义.

◆ Line() [2/7]

cm::Line::Line ( int pt1_x,
int pt1_y,
int pt2_x,
int pt2_y )
inline

线类的带参构造函数

创建一个线对象,并通过提供的坐标参数设置线的两个端点坐标。

参数
pt1_x线的第一个点的x坐标
pt1_y线的第一个点的y坐标
pt2_x线的第二个点的x坐标
pt2_y线的第二个点的y坐标
注解
在构造线类时,会自动调用 TidyLine 函数以整理线的坐标点顺序。
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp485 行定义.

函数调用图:

◆ Line() [3/7]

cm::Line::Line ( const std::initializer_list< int > & initial_list)
inline

线类的初始化列表构造函数

创建一个线对象,并通过提供的初始化列表设置线的两个端点坐标。

参数
initial_list初始化列表
注解
在构造线类时,会自动调用 TidyLine 函数以整理线的坐标点顺序。
注意
  • 如果提供的初始化列表中的元素数量少于四个,则会导致未定义的行为。
  • 如果提供的初始化列表中的元素数量多于四个,则只使用前四个元素来设置线的两个端点坐标。
示例
// 使用初始化列表构造函数创建 Line 对象
cm::Line line = {1, 3, 5, 2}; // 设置线的两个端点坐标为 (1, 3) 和 (5, 2)
线类
Definition line.hpp:31
点类
Definition point.hpp:52
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp510 行定义.

函数调用图:

◆ Line() [4/7]

cm::Line::Line ( const Point2i & pt1,
const Point2i & pt2 )
inline

线类的带参构造函数

创建一个线对象,通过提供的两个点坐标来设置线的两个端点。

参数
pt1点1
pt2点2
注解
在构造线类时,会自动调用 TidyLine 函数以整理线的坐标点顺序。
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp533 行定义.

函数调用图:

◆ Line() [5/7]

cm::Line::Line ( const cv::Vec4i & line)
inline

线类的带参构造函数

创建一个线对象,通过提供的 cv::Vec4i 类型的线来设置线的两个端点坐标。

参数
line包含四个整数值的 cv::Vec4i 类型线段
注解
在构造线类时,会自动调用 TidyLine 函数以整理线的坐标点顺序。
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp548 行定义.

函数调用图:

◆ Line() [6/7]

cm::Line::Line ( const std::vector< int > & list)
inline

线类的带参构造函数

创建一个线对象,通过提供的 std::vector<int> 类型的线来设置线的两个端点坐标。

参数
list包含四个整数值的 std::vector<int> 类型线段
注解
在构造线类时,会自动调用 TidyLine 函数以整理线的坐标点顺序。
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp563 行定义.

函数调用图:

◆ Line() [7/7]

cm::Line::Line ( const Line & line)
inline

线类的拷贝构造函数

创建一个线对象,通过提供的 Line 类型的线对象来初始化新的线对象。

参数
line要拷贝的线对象
注解
在构造线类时,会自动调用 TidyLine 函数以整理线的坐标点顺序。
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp585 行定义.

函数调用图:

◆ ~Line()

cm::Line::~Line ( )
inline

线类的析构函数

该析构函数将释放类对象所占用的空间资源。

作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp596 行定义.

成员函数说明

◆ DistanceTo() [1/2]

double cm::Line::DistanceTo ( const Line & line,
LineDistanceType type ) const
inline

计算线到线的距离

该函数用于计算两条线段之间的距离,可以根据指定的距离类型计算不同的距离值。

注意
确保传入的线已经调用过线调整函数 TidyLine
参数
line另一条线
type需要计算的线距离类型(两竖线之间的水平距离、两横线之间的垂直距离、横线与横线之间的水平距离、竖线与竖线之间的垂直距离、两线之间的最大x坐标距离、两线之间的最大y坐标距离、两线之间的最小x坐标距离、两线之间的最小y坐标距离)
返回
线到线的距离
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp898 行定义.

◆ DistanceTo() [2/2]

template<typename T >
double cm::Line::DistanceTo ( const Point< T > & pt) const
inline

计算点到直线的距离

使用直线的一般方程计算给定点到直线的距离,公式为:distance = |ax + by + c| / sqrt(a^2 + b^2),其中直线由两点<tt>(x1, y1)和<tt>(x2, y2)确定,点的坐标为<tt>(x, y)。

模板参数
T点的数据类型
参数
pt
返回
点到直线的距离
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp870 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ GECoefficients()

Line::GEEquation cm::Line::GECoefficients ( ) const
inline

计算线的一般方程系数

根据线段的两个点,计算线的一般方程系数。线的一般方程是ax + by + c = 0,其中abc分别表示系数。

返回
线的一般方程系数,以对象形式存储 cm::Line::GEEquation{a, b, c}
示例
// 计算线的一般方程系数
cm::Line::GEEquation coeffs = line.GECoefficients(); // 返回 {3, -4, -9},因为 a = 6-3 = 3, b = 1-5 = -4, c = 5*3 - 1*6 = -9
线的一般方程
Definition line.hpp:53
注意
线段的两个端点必须严格不重合,否则运行时可能导致未知错误的发生。
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp803 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ InInterval()

bool cm::Line::InInterval ( const Interval & x_interval,
const Interval & y_interval ) const
inline

判断线是否在区间内

确保线段的两个端点均在指定的 x 和 y 坐标区间内,且区间为左闭右开。

注意
请注意区间是左闭右开的情况,对于线条的端点需要特别考虑。例如,存在一个临界横线 {(a,c),(b,c)} 与 x_interval 区间 [a, b) 在最右端点不包含,因此整体结果是不包含该点的。
参数
x_intervalx坐标区间
y_intervaly坐标区间
返回
线是否在区间内
返回值
true线段的所有点都位于指定的区间内
false线段的存在点不在指定的区间内
作者
dreamy-xay
日期
2023-12-05

在文件 line.hpp1235 行定义.

◆ Intersect() [1/3]

Point2d cm::Line::Intersect ( const GEEquation & ge) const
inline

通过另一条线的一般方程计算两线的交点

该函数用于计算当前直线与另一条线的一般方程的交点。

注意
交点可能是两条线延长后的交点。
参数
ge另一条线的一般方程
返回
两线的交点
前置条件
两条线不能是平行的。
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp1038 行定义.

函数调用图:

◆ Intersect() [2/3]

Point2d cm::Line::Intersect ( const Line & line) const
inline

计算两线的交点

该函数用于计算当前直线与另一条直线的交点

注意
交点可能是两条线延长后的交点。
参数
line另一条线
返回
两线的交点
前置条件
两条线不能是平行的。
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp1017 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ Intersect() [3/3]

Point2d cm::Line::Intersect ( const SIEquation & si) const
inline

通过另一条线的斜截式方程计算两线的交点

该函数用于计算当前直线与另一条线的斜截式方程的交点。

注意
交点可能是两条线延长后的交点。
警告
该函数只能计算横线与竖线或竖线与横线之间的交点,无法计算两条线类型相同的线的交点。
参数
si另一条线的斜截式方程
返回
两线的交点
前置条件
两条线不能是平行的。
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp1081 行定义.

函数调用图:

◆ IsAligned()

bool cm::Line::IsAligned ( const Line & line,
Position align_direction,
int threshold = 5 ) const
inline

判断两根线是否对齐

判断两条线段是否在指定的对齐方向上对齐,可以是水平线和垂直线,但必须是不同类型的线段。对齐的定义为:线段之间的交点坐标在指定方向上与其中一条线段的端点坐标的距离小于等于阈值。

注意
两根线的类型必须不相同。
参数
line参考线(横线或者竖线,要求两根线的类型必须不同)
align_direction对齐方向
threshold对齐的误差阈值 默认为 5 个像素
返回
是否对齐
返回值
true两根线在指定方向对齐
false两根线在指定方向不对齐
作者
justliulong
日期
2023-12-06

在文件 line.hpp1446 行定义.

函数调用图:

◆ IsIntersect()

bool cm::Line::IsIntersect ( const Line & line,
IntersectType type = INTERSECT_XY,
bool is_include_boundaries = false ) const
inline

判断两线是否相交

该函数通过跨立实验和快速排斥实验来判断两条线段是否相交。跨立实验使用向量叉乘的方式,快速排斥实验用于在x和y坐标方向上快速判断是否相交。

参数
line另一条线
type相交的类型(水平方向上相交、垂直方向上相交、两个方向上都相交)
is_include_boundaries是否包含边界 默认不包含
返回
两线是否相交
返回值
true两线段在给定条件下(是否包含边界)相交
false两线段在给定条件下(是否包含边界)不相交
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp1257 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ IsNear()

bool cm::Line::IsNear ( const Line & line,
double threshold = 5.0,
Statistic type = MAXIMUM ) const
inline

判断两线是否接近

该函数用于判断空间中两条线段是否相互接近,判断的方法是通过计算点到直线的距离。具体而言,需要计算每条线段的两个端点到另一条线段的距离,共计四个点到直线的距离。然后,根据预设的统计方式(可以是最小距离、最大距离或平均距离),来判断这四个距离是否满足条件。只有当满足统计方式下的条件时,才能判定这两条线段是相互接近的。

参数
line另一条线
threshold判定相邻的阈值,两线小于此值就可以认为是相邻 默认值 5.0
type统计方式(如:最小点到直线距离、最大点到直线距离、平均点到直线距离,其中点到直线距离:线1两点到线2距离和线2两点到线1距离,共四个点到直线距离) 默认为 cm::MAXNAMLEN
返回
两线是否接近
返回值
true在阈值之内两根线视作接近
false在阈值之内两根线视作不接近
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp1491 行定义.

函数调用图:

◆ IsPoint()

bool cm::Line::IsPoint ( ) const
inline

判断线是否是一个点

如果线段的两个端点横纵坐标都相等,则被视为一个点,即线段退化为点。

返回
线是否是一个点
返回值
true线段是一个点,线的两个端点的 x 坐标和 y 坐标均相等
false线段不是一个点,线的两个端点的 x 坐标和 y 坐标至少有一个不相等
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp1357 行定义.

这是这个函数的调用关系图:

◆ Length()

double cm::Line::Length ( bool is_rough = false) const
inline

获取线的长度

根据参数is_rough的取值,获取线的长度。当is_roughtrue时,返回线的粗糙长度,即横线长度为两点x坐标差,竖线长度为两点y坐标差;当is_roughfalse时,返回线的精准长度,即线段两点之间的距离。

参数
is_rough是否获取线的粗糙长度 默认为 false
返回
线的长度
示例
// 获取线的长度
double rough_length = line.Length(true); // 返回 3,因为横线长度为 4-1 = 3
double precise_length = line.Length(false); // 返回 5,因为两点距离为 sqrt((5-1)^2 + (6-3)^2) = 5
注意
如果需要获取精确长度,请确保传入的两点坐标合法并非重合,以避免出现计算错误。
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp778 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ LimitX()

Line & cm::Line::LimitX ( const Interval & interval)
inline

限制线的 x 坐标在指定区间范围内

如果线的 x 坐标不在指定区间范围内,则修改 x 坐标使其趋近于区间边界,具体实现调用的是点的限制函数 cm::Point::LimitYcm::Point::LimitX

参数
interval线的 x 坐标区间
返回
类自身引用,方便链式调用
作者
dreamy-xay
日期
2024-01-09

在文件 line.hpp1194 行定义.

函数调用图:

◆ LimitY()

Line & cm::Line::LimitY ( const Interval & interval)
inline

限制线的 y 坐标在指定区间范围内

如果线的端点的 y 坐标不在指定的 y 坐标区间内,则修改 y 坐标使其趋近于区间边界,具体实现调用的是点的限制函数 cm::Point::LimitYcm::Point::LimitX

参数
interval线的 y 坐标区间
返回
类自身引用,方便链式调用
作者
dreamy-xay
日期
2024-01-09

在文件 line.hpp1212 行定义.

函数调用图:

◆ Midpoint()

Point2d cm::Line::Midpoint ( ) const
inline

获取线段中点坐标

分别计算线段两个端点在水平方向和垂直方向的中点,构成线段的中点坐标。

返回
线段中点坐标
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp1131 行定义.

◆ operator cv::Vec4i()

cm::Line::operator cv::Vec4i ( ) const
inline

将线类转换为 OpenCV 的 cv::Vec4i 类型

将当前线对象转换为 OpenCV 的 cv::Vec4i 类型,以便在需要使用 cv::Vec4i 类型的场合下进行转换操作。

返回
转换后的 OpenCV 的 cv::Vec4i 对象
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp607 行定义.

◆ operator std::vector< int >()

cm::Line::operator std::vector< int > ( ) const
inline

将线类转换为 std::vector<int> 类型

将当前线对象转换为 std::vector<int> 类型,以便在需要使用 std::vector<int> 类型的场合下进行转换操作。

返回
转换后的 std::vector<int> 对象
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp620 行定义.

◆ operator[]() [1/2]

int & cm::Line::operator[] ( size_t index)
inline

线类重载方括号运算符

重载方括号索引运算符以支持通过索引访问线的端点坐标,但效率较低,不建议在性能敏感的场景中使用。

参数
index索引值,0 表示访问第一个端点的 x 坐标,1 表示访问第一个端点的 y 坐标,2 表示访问第二个端点的 x 坐标,3 表示访问第二个端点的 y 坐标
返回
对应索引的端点坐标分量的引用
注意
当索引值超过3时,将会触发异常。
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp691 行定义.

◆ operator[]() [2/2]

const int & cm::Line::operator[] ( size_t index) const
inline

线类重载方括号运算符

重载方括号索引运算符以支持通过索引访问线的端点坐标,但效率较低,不建议在性能敏感的场景中使用。

参数
index索引值,0 表示访问第一个端点的 x 坐标,1 表示访问第一个端点的 y 坐标,2 表示访问第二个端点的 x 坐标,3 表示访问第二个端点的 y 坐标
返回
对应索引的端点坐标分量的常引用
注意
当索引值超过3时,将会触发异常。
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp721 行定义.

◆ Rotate()

template<typename T >
Line & cm::Line::Rotate ( double angle,
const Point< T > & center = {0, 0} )
inline

线的坐标旋转操作

该函数用于对线段进行坐标旋转操作,围绕指定中心点进行旋转。

模板参数
T中心点的数据类型
参数
angle旋转角度
center中心点坐标 默认为 Point{x: 0, y: 0}
返回
类自身引用,方便链式调用
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp974 行定义.

函数调用图:

◆ Scale()

Line & cm::Line::Scale ( double factor,
bool round = true )
inline

线的坐标缩放操作

该函数用于对线段进行坐标缩放操作,按照指定的缩放因子进行缩放,具体的实现调用了点的缩放函数 cm::Point::Scale

参数
factor缩放因子(缩放比率)
round是否四舍五入 默认为 true
返回
类自身引用,方便链式调用
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp952 行定义.

函数调用图:

◆ SICoefficients()

Line::SIEquation cm::Line::SICoefficients ( ) const
inline

计算线的斜截式系数

根据线段的两个点,计算线的斜截式系数。斜截式方程是一种常见的描述直线的形式,横线的斜截式为 y = kx + b,竖线的斜截式为 x = ky + b。

返回
线的斜截式系数和类型,以对象形式存储 cm::Line::SIEquation{k, b, type}
示例
// 计算线的斜截式系数
cm::Line::SIEquation coeffs = line.SICoefficients(); // 返回 {1, 1, cm::Line::VLINE},因为该线段是一条斜率为 1,截距为 1 的竖线
线的斜截式方程
Definition line.hpp:96
注意
线段的两个端点必须严格不重合,否则运行时可能导致未知错误的发生。
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp840 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ SimpleConnect()

Line cm::Line::SimpleConnect ( const Line & line) const
inline

简单合并线

将两条线段进行简单合并,得到一条新的线段。对于垂直线和水平线的情况,合并方法如下:

  • 对于垂直线(VLINE):
    • 上端点选择 y 坐标较小的点作为新线段的上端点;
    • 下端点选择 y 坐标较大的点作为新线段的下端点。
  • 对于水平线(HLINE):
    • 左端点选择 x 坐标较小的点作为新线段的左端点;
    • 右端点选择 x 坐标较大的点作为新线段的右端点。
参数
line将要合并的线
注意
使用函数需要注意:
  • 两根合并的线类型必须要相同,横线与横线,竖线与竖线。
  • 该函数合并操作没有任何约束,因此线段合并后可能会得到一条倾斜的线段。使用者在合并后需要考虑如何合理利用这一特性(例如,可以用于判断两条线是否在同一条直线上)。合并后的结果需要保证没有异常情况发生。
返回
合并之后的新线
作者
justliulong
日期
2023-12-06

在文件 line.hpp1382 行定义.

函数调用图:

◆ TidyLine()

Line & cm::Line::TidyLine ( )
inline

整理线的端点顺序

该函数用于整理线段的端点顺序,保证横线时 pt1 在 pt2 的左侧,竖线时 pt1 在 pt2 的上侧。

返回
类自身引用,方便链式调用
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp990 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ Translate()

Line & cm::Line::Translate ( int dx,
int dy )
inline

线的坐标平移操作

该函数用于对线段进行坐标平移操作,沿指定距离在 x 和 y 坐标上进行平移,具体实现调用的是点的平移函数 cm::Point::Translate

参数
dx在x坐标上平移的距离
dy在y坐标上平移的距离
返回
类自身引用,方便链式调用
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp933 行定义.

函数调用图:

◆ Type()

LineType cm::Line::Type ( ) const
inline

获取线类型

根据线段两端点的坐标关系判断线段的类型,当两点的x坐标差大于y坐标差时,将线段视为横线;反之则视为竖线。

返回
枚举类型(横线: HLINE,竖线: VLINE
注意
如果线条倾斜角度为45度,则也被视为竖线。
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp749 行定义.

这是这个函数的调用关系图:

◆ X()

double cm::Line::X ( Statistic type) const
inline

获取线的 X 坐标

获取各种统计方式下的x坐标(如: 线的最小x坐标线的平均x坐标线的最大x坐标)。

参数
type统计方式
返回
指定统计方式下x坐标值
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp1146 行定义.

◆ Y()

double cm::Line::Y ( Statistic type) const
inline

获取线的 Y 坐标

获取各种统计方式下的y坐标(如: 线的最小y坐标线的平均y坐标线的最大y坐标)。

参数
type统计方式
返回
指定统计方式下y坐标值
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp1170 行定义.

友元及相关函数文档

◆ operator!=

bool operator!= ( const Line & line1,
const Line & line2 )
friend

线类重载不等于号

判断两个线对象是否不相等,通过比较两个线对象的端点坐标是否相同来确定是否不相等。

参数
line1第一个线对象
line2第二个线对象
返回
两条线是否不相等
返回值
true两条线不相等
false两条线相等
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp656 行定义.

◆ operator<<

std::ostream & operator<< ( std::ostream & out,
const Line & line )
friend

线类重载输出流运算符

将线对象的信息输出到流中,包括线的两个端点坐标信息。

参数
out输出流对象
line待输出的线对象
返回
输出流对象,以支持流式输出
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp672 行定义.

◆ operator==

bool operator== ( const Line & line1,
const Line & line2 )
friend

线类重载等于号

判断两个线对象是否相等,通过比较两个线对象的端点坐标是否相同来确定是否相等。

参数
line1第一个线对象
line2第二个线对象
返回
两条线是否相等
返回值
true两条线相等
false两条线不相等
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp638 行定义.

类成员变量说明

◆ pt1

Point2i cm::Line::pt1

线的第一个点(默认:对于横线是左边的点;对于竖线是上面的点)

在文件 line.hpp201 行定义.

◆ pt2

Point2i cm::Line::pt2

线的第二个点(默认:对于横线是右边的点,对于竖线是下面的点)

在文件 line.hpp203 行定义.


该类的文档由以下文件生成: