表格线识别通用库文档
载入中...
搜索中...
未找到
cm::Point< T > 模板类 参考

点类 更多...

#include <point.hpp>

Public 成员函数

 Point ()
 点类的默认构造函数
 
 Point (T x, T y)
 点类的带参构造函数
 
template<typename U >
 Point (const Point< U > &pt)
 点类拷贝构造函数
 
template<typename U >
 Point (const cv::Point_< U > &pt)
 点类的重载构造函数
 
 ~Point ()
 点类的析构函数
 
template<typename U >
 operator cv::Point_< U > () const
 将点类转换为 OpenCV 的 cv::Point 类型
 
template<typename U >
 operator Point< U > () const
 实现各种数据类型的点类之间的相互转换
 
template<typename U >
double DistanceTo (const Point< U > &pt) const
 计算点到点之间的距离
 
Point< T > & Translate (T dx, T dy)
 点的坐标平移操作
 
Point< T > & Scale (double factor, bool round=false)
 点的坐标缩放操作
 
template<typename U >
Point< T > & Rotate (double angle, const Point< U > &center={0, 0})
 点的坐标旋转操作
 
template<typename U >
double Dot (const Point< U > &pt) const
 计算点积
 
template<typename U >
double Cross (const Point< U > &pt) const
 计算叉积
 
template<typename U >
Point< T > & LimitX (U start, U end)
 限制点的 x 坐标在区间 [min_x, max_x] 范围内
 
template<typename U >
Point< T > & LimitY (U start, U end)
 限制点的 y 坐标在区间 [min_x, max_x] 范围内
 

Public 属性

T x
 点的 x 坐标
 
T y
 点的 y 坐标
 

友元

template<typename U >
bool operator== (const Point< U > &pt1, const Point< U > &pt2)
 点类重载等于号
 
template<typename U >
bool operator!= (const Point< U > &pt1, const Point< U > &pt2)
 点类重载不等于号
 
template<typename U >
bool operator< (const Point< U > &pt1, const Point< U > &pt2)
 点类重载小于号
 
template<typename U >
bool operator> (const Point< U > &pt1, const Point< U > &pt2)
 点类重载大于号
 
template<typename U >
bool operator<= (const Point< U > &pt1, const Point< U > &pt2)
 点类重载小于等于号
 
template<typename U >
bool operator>= (const Point< U > &pt1, const Point< U > &pt2)
 点类重载大于等于号
 
template<typename U >
Point< Uoperator- (const Point< U > &pt1, const Point< U > &pt2)
 点类重载减号运算符
 
template<typename U >
std::ostream & operator<< (std::ostream &out, const Point< U > &pt)
 点类重载输出流运算符
 

详细描述

template<typename T>
class cm::Point< T >

点类

该类表示二维空间中的点,包含了点的坐标信息和常用的点操作方法。

模板参数
T点的坐标类型,可以根据需要设置为浮点类型以获得高精度,或者设置为整型以获得低精度
注解
支持点的坐标类型为任意类型,提供了构造函数、类型转换、运算符重载等操作。
示例
// 创建一个整型点
Point<int> p1(3, 4);
// 创建一个浮点型点并进行平移操作
Point<double> p2(1.5, 2.5);
p2.Translate(2.0, 1.0);
// 计算两点之间的距离
Point<float> p3(1.0, 1.0);
Point<float> p4(4.0, 5.0);
点类
Definition point.hpp:52
double DistanceTo(const Point< U > &pt) const
计算点到点之间的距离
Definition point.hpp:410
Point()
点类的默认构造函数
Definition point.hpp:125
Point< T > & Translate(T dx, T dy)
点的坐标平移操作
Definition point.hpp:427
警告
坐标类型为浮点类型时可获得高精度计算,但可能存在精度误差;坐标类型为整型时可获得精确计算,但可能丢失小数部分。
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp52 行定义.

构造及析构函数说明

◆ Point() [1/4]

template<typename T >
cm::Point< T >::Point ( )
inline

点类的默认构造函数

创建一个点对象,并初始化 x 和 y 坐标为默认值。

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

在文件 point.hpp125 行定义.

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

◆ Point() [2/4]

template<typename T >
cm::Point< T >::Point ( T x,
T y )
inline

点类的带参构造函数

根据给定 x 和 y 坐标创建点对象。

参数
x点x坐标
y点y坐标
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp138 行定义.

◆ Point() [3/4]

template<typename T >
template<typename U >
cm::Point< T >::Point ( const Point< U > & pt)
inline

点类拷贝构造函数

从给定的点对象进行拷贝构造,生成一个新的点对象。

模板参数
U拷贝源点对象的数据类型
参数
pt
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp153 行定义.

◆ Point() [4/4]

template<typename T >
template<typename U >
cm::Point< T >::Point ( const cv::Point_< U > & pt)
inline

点类的重载构造函数

通过给定的 cv::Point 对象构造一个点对象。

参数
ptOpenCV库类型的点
注解
这个构造函数允许不同类型的数据进行转换,使用 static_cast 进行类型转换。例如,如果源 OpenCV Point 对象的数据类型是整数,而目标点对象的数据类型是浮点数,则会将整数值转换为浮点数值并存储在新的点对象中。
警告
如果从高精度 cv::Point 向低精度自定义点类型转换,丢失的精度需要使用者自行考虑。
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp170 行定义.

◆ ~Point()

template<typename T >
cm::Point< T >::~Point ( )
inline

点类的析构函数

释放点对象所占用的空间资源。

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

在文件 point.hpp180 行定义.

成员函数说明

◆ Cross()

template<typename T >
template<typename U >
double cm::Point< T >::Cross ( const Point< U > & pt) const
inline

计算叉积

该函数用于计算以当前点对象为坐标的矢量与另一个矢量的叉积(将两个矢量构成的平行四边形的有向面积)。

模板参数
U另一个点(矢量)的数据类型
参数
pt另一个点(实际上可以看作一个矢量)
返回
叉积结果
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp525 行定义.

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

◆ DistanceTo()

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

计算点到点之间的距离

该函数用于计算当前点对象到另一个点对象之间的欧氏距离。

模板参数
U另一个点对象中坐标的数据类型
参数
pt另一个点对象
注意
两个点对象支持不同数据类型,最后的距离结果以双精度(double)类型存储。
返回
当前点到另一个点之间的欧氏距离
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp410 行定义.

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

◆ Dot()

template<typename T >
template<typename U >
double cm::Point< T >::Dot ( const Point< U > & pt) const
inline

计算点积

该函数用于计算以当前点对象为坐标的矢量与另一个矢量的点积(将两个矢量对应分量相乘后再相加)。

模板参数
U另一个点(矢量)的数据类型
参数
pt另一个点(实际上可以看作一个矢量)
返回
点积结果
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp506 行定义.

◆ LimitX()

template<typename T >
template<typename U >
Point< T > & cm::Point< T >::LimitX ( U min_x,
U max_x )

限制点的 x 坐标在区间 [min_x, max_x] 范围内

如果当前点的 x 坐标小于最小允许的 x 坐标 min_x,则将 x 坐标设为 min_x;如果当前点的 x 坐标大于最大允许的 x 坐标 max_x,则将 x 坐标设为 max_x。这样可以确保点的 x 坐标始终在指定范围内,保证数据的有效性和一致性。

模板参数
Ux 坐标的数据类型
参数
min_x最小 x 坐标
max_x最大 x 坐标
返回
类自身引用,方便链式调用
作者
dreamy-xay
日期
2024-01-15

在文件 point.hpp545 行定义.

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

◆ LimitY()

template<typename T >
template<typename U >
Point< T > & cm::Point< T >::LimitY ( U min_y,
U max_y )

限制点的 y 坐标在区间 [min_x, max_x] 范围内

如果当前点的 y 坐标小于最小允许的 y 坐标 min_y,则将 y 坐标设为 min_y;如果当前点的 y 坐标大于最大允许的 y 坐标 max_y,则将 y 坐标设为 max_y。这样可以确保点的 y 坐标始终在指定范围内,保证数据的有效性和一致性。

模板参数
Uy 坐标的数据类型
参数
min_y最小 y 坐标
max_y最大 y 坐标
返回
类自身引用,方便链式调用
作者
dreamy-xay
日期
2024-01-15

在文件 point.hpp571 行定义.

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

◆ operator cv::Point_< U >()

template<typename T >
template<typename U >
cm::Point< T >::operator cv::Point_< U > ( ) const
inline

将点类转换为 OpenCV 的 cv::Point 类型

该转换操作符将当前区间对象转换为 OpenCV 的 cv::Point 类型,返回一个包含相同x坐标和y坐标的 cv::Point 对象。

模板参数
U要转换的目标数据类型(cv::Point 的坐标数据类型)
返回
转换后的 OpenCV 的 cv::Point 对象
注解
这个构造函数允许不同类型的点进行转换,使用 static_cast 进行类型转换。例如,如果自定义点对象的数据类型是整数,而目标 OpenCV 点对象的数据类型是浮点数,则会将整数值转换为浮点数值并存储在新的点对象中。
警告
如果从高精度自定义点对象向低精度 cv::Point 转换,丢失的精度需要使用者自行考虑。
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp199 行定义.

◆ operator Point< U >()

template<typename T >
template<typename U >
cm::Point< T >::operator Point< U > ( ) const
inline

实现各种数据类型的点类之间的相互转换

该转换操作符将当前 T 数据类型的点对象转换为指定数据类型 U 的点对象。

模板参数
U要转换的目标数据类型
返回
转换后的点对象
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp216 行定义.

◆ Rotate()

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

点的坐标旋转操作

该函数用于实现点对象围绕指定中心点进行旋转操作。

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

在文件 point.hpp475 行定义.

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

◆ Scale()

template<typename T >
Point< T > & cm::Point< T >::Scale ( double factor,
bool round = false )
inline

点的坐标缩放操作

该函数用于实现点对象的坐标缩放操作,可以按照给定的缩放因子对坐标进行缩放,可选择是否四舍五入。

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

在文件 point.hpp447 行定义.

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

◆ Translate()

template<typename T >
Point< T > & cm::Point< T >::Translate ( T dx,
T dy )
inline

点的坐标平移操作

该函数用于实现点对象的平移操作,分别在x和y坐标上进行平移。

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

在文件 point.hpp427 行定义.

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

友元及相关函数文档

◆ operator!=

template<typename T >
template<typename U >
bool operator!= ( const Point< U > & pt1,
const Point< U > & pt2 )
friend

点类重载不等于号

该重载函数用于比较两个点对象是否不相等,判断的标准是两个点的 x 坐标和 y 坐标至少有一个不相等。

模板参数
U点对象的数据类型
参数
pt1第一个点对象
pt2第二个点对象
返回
返回值
true两个点对象的 x 坐标和 y 坐标至少有一个不相等
false两个点对象的 x 坐标和 y 坐标均相等
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp258 行定义.

◆ operator-

template<typename T >
template<typename U >
Point< U > operator- ( const Point< U > & pt1,
const Point< U > & pt2 )
friend

点类重载减号运算符

该重载函数用于实现两个点对象相减,得到一个表示终点减起点的矢量。

模板参数
U点对象中坐标的数据类型
参数
pt1第一个点对象
pt2第二个点对象
返回
一个矢量,具体方向由减法关系决定,比如pt1 - pt2的方向就是从pt2pt1(指向被减数)
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp369 行定义.

◆ operator<

template<typename T >
template<typename U >
bool operator< ( const Point< U > & pt1,
const Point< U > & pt2 )
friend

点类重载小于号

该重载函数用于比较两个点对象的大小关系,如果第一个点对象的 x 坐标小于第二个点对象的 x 坐标,则返回 true;如果两个点对象的 x 坐标相等,那么比较它们的 y 坐标,y 坐标小的点被认为是小于另一个点。

模板参数
U点对象中坐标的数据类型
参数
pt1第一个点对象
pt2第二个点对象
返回
点1和点2在二维平面上的相对位置
返回值
true点1位于点2的左下方或左侧
false点1不位于点2的左下方或左侧
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp279 行定义.

◆ operator<<

template<typename T >
template<typename U >
std::ostream & operator<< ( std::ostream & out,
const Point< U > & pt )
friend

点类重载输出流运算符

该重载函数用于将点对象的坐标信息输出到流中,以便进行输出操作。

模板参数
U点对象中坐标的数据类型
参数
out输出流
pt点对象
返回
输出流对象,以便进行链式输出操作
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp388 行定义.

◆ operator<=

template<typename T >
template<typename U >
bool operator<= ( const Point< U > & pt1,
const Point< U > & pt2 )
friend

点类重载小于等于号

该重载函数用于比较两个点对象的大小关系,如果第一个点对象的 x 坐标小于等于第二个点对象的 x 坐标,则返回 true;如果两个点对象的 x 坐标相等,那么比较它们的 y 坐标,y 坐标小于等于的点被认为是小于等于另一个点。

模板参数
U点对象中坐标的数据类型
参数
pt1第一个点对象
pt2第二个点对象
返回
点1和点2在二维平面上的相对位置
返回值
true点1位于点2的左下方、左侧或重合
false点1不位于点2的左下方、左侧或重合
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp325 行定义.

◆ operator==

template<typename T >
template<typename U >
bool operator== ( const Point< U > & pt1,
const Point< U > & pt2 )
friend

点类重载等于号

该重载函数用于比较两个点对象是否相等,判断的标准是两个点的 x 坐标和 y 坐标均相等。

模板参数
U点对象的数据类型
参数
pt1第一个点对象
pt2第二个点对象
返回
两个点对象是否相等
返回值
true两个点对象的 x 坐标和 y 坐标均相等
false两个点对象的 x 坐标和 y 坐标至少有一个不相等
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp237 行定义.

◆ operator>

template<typename T >
template<typename U >
bool operator> ( const Point< U > & pt1,
const Point< U > & pt2 )
friend

点类重载大于号

该重载函数用于比较两个点对象的大小关系,如果第一个点对象的 x 坐标大于第二个点对象的 x 坐标,则返回 true;如果两个点对象的 x 坐标相等,那么比较它们的 y 坐标,y 坐标大的点被认为是大于另一个点。

模板参数
U点对象中坐标的数据类型
参数
pt1第一个点对象
pt2第二个点对象
返回
点1和点2在二维平面上的相对位置
返回值
true点1位于点2的右上方
false点1不位于点2的右上方
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp302 行定义.

◆ operator>=

template<typename T >
template<typename U >
bool operator>= ( const Point< U > & pt1,
const Point< U > & pt2 )
friend

点类重载大于等于号

该重载函数用于比较两个点对象的大小关系,如果第一个点对象的 x 坐标大于等于第二个点对象的 x 坐标,则返回 true;如果两个点对象的 x 坐标相等,那么比较它们的 y 坐标,y 坐标大于等于的点被认为是大于等于另一个点。

模板参数
U点对象中坐标的数据类型
参数
pt1第一个点对象
pt2第二个点对象
返回
点1和点2在二维平面上的相对位置
返回值
true点1位于点2的右上方、右侧或重合
false点1不位于点2的右上方、右侧或重合
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp348 行定义.

类成员变量说明

◆ x

template<typename T >
T cm::Point< T >::x

点的 x 坐标

在文件 point.hpp55 行定义.

◆ y

template<typename T >
T cm::Point< T >::y

点的 y 坐标

在文件 point.hpp57 行定义.


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