点类
更多...
#include <point.hpp>
点类
该类表示二维空间中的点,包含了点的坐标信息和常用的点操作方法。
- 模板参数
-
| T | 点的坐标类型,可以根据需要设置为浮点类型以获得高精度,或者设置为整型以获得低精度 |
- 注解
- 支持点的坐标类型为任意类型,提供了构造函数、类型转换、运算符重载等操作。
- 示例
double DistanceTo(const Point< U > &pt) const
计算点到点之间的距离
Point< T > & Translate(T dx, T dy)
点的坐标平移操作
- 警告
- 坐标类型为浮点类型时可获得高精度计算,但可能存在精度误差;坐标类型为整型时可获得精确计算,但可能丢失小数部分。
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 52 行定义.
◆ Point() [1/4]
点类的默认构造函数
创建一个点对象,并初始化 x 和 y 坐标为默认值。
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 125 行定义.
◆ Point() [2/4]
点类的带参构造函数
根据给定 x 和 y 坐标创建点对象。
- 参数
-
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 138 行定义.
◆ Point() [3/4]
点类拷贝构造函数
从给定的点对象进行拷贝构造,生成一个新的点对象。
- 模板参数
-
- 参数
-
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 153 行定义.
◆ Point() [4/4]
点类的重载构造函数
通过给定的 cv::Point 对象构造一个点对象。
- 参数
-
- 注解
- 这个构造函数允许不同类型的数据进行转换,使用 static_cast 进行类型转换。例如,如果源 OpenCV Point 对象的数据类型是整数,而目标点对象的数据类型是浮点数,则会将整数值转换为浮点数值并存储在新的点对象中。
- 警告
- 如果从高精度 cv::Point 向低精度自定义点类型转换,丢失的精度需要使用者自行考虑。
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 170 行定义.
◆ ~Point()
点类的析构函数
释放点对象所占用的空间资源。
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 180 行定义.
◆ Cross()
计算叉积
该函数用于计算以当前点对象为坐标的矢量与另一个矢量的叉积(将两个矢量构成的平行四边形的有向面积)。
- 模板参数
-
- 参数
-
- 返回
- 叉积结果
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 525 行定义.
◆ DistanceTo()
计算点到点之间的距离
该函数用于计算当前点对象到另一个点对象之间的欧氏距离。
- 模板参数
-
- 参数
-
- 注意
- 两个点对象支持不同数据类型,最后的距离结果以双精度(double)类型存储。
- 返回
- 当前点到另一个点之间的欧氏距离
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 410 行定义.
◆ Dot()
计算点积
该函数用于计算以当前点对象为坐标的矢量与另一个矢量的点积(将两个矢量对应分量相乘后再相加)。
- 模板参数
-
- 参数
-
- 返回
- 点积结果
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 506 行定义.
◆ LimitX()
限制点的 x 坐标在区间 [min_x, max_x] 范围内
如果当前点的 x 坐标小于最小允许的 x 坐标 min_x,则将 x 坐标设为 min_x;如果当前点的 x 坐标大于最大允许的 x 坐标 max_x,则将 x 坐标设为 max_x。这样可以确保点的 x 坐标始终在指定范围内,保证数据的有效性和一致性。
- 模板参数
-
- 参数
-
| min_x | 最小 x 坐标 |
| max_x | 最大 x 坐标 |
- 返回
- 类自身引用,方便链式调用
- 作者
- dreamy-xay
- 日期
- 2024-01-15
在文件 point.hpp 第 545 行定义.
◆ LimitY()
限制点的 y 坐标在区间 [min_x, max_x] 范围内
如果当前点的 y 坐标小于最小允许的 y 坐标 min_y,则将 y 坐标设为 min_y;如果当前点的 y 坐标大于最大允许的 y 坐标 max_y,则将 y 坐标设为 max_y。这样可以确保点的 y 坐标始终在指定范围内,保证数据的有效性和一致性。
- 模板参数
-
- 参数
-
| min_y | 最小 y 坐标 |
| max_y | 最大 y 坐标 |
- 返回
- 类自身引用,方便链式调用
- 作者
- dreamy-xay
- 日期
- 2024-01-15
在文件 point.hpp 第 571 行定义.
◆ operator cv::Point_< U >()
将点类转换为 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.hpp 第 199 行定义.
◆ operator Point< U >()
实现各种数据类型的点类之间的相互转换
该转换操作符将当前 T 数据类型的点对象转换为指定数据类型 U 的点对象。
- 模板参数
-
- 返回
- 转换后的点对象
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 216 行定义.
◆ Rotate()
点的坐标旋转操作
该函数用于实现点对象围绕指定中心点进行旋转操作。
- 模板参数
-
- 参数
-
| angle | 旋转角度 |
| center | 中心点坐标 默认为 Point{x: 0, y: 0} |
- 返回
- 类自身引用,方便链式调用
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 475 行定义.
◆ Scale()
点的坐标缩放操作
该函数用于实现点对象的坐标缩放操作,可以按照给定的缩放因子对坐标进行缩放,可选择是否四舍五入。
- 参数
-
| factor | 缩放因子(缩放比率) |
| round | 是否四舍五入 默认为 false |
- 返回
- 类自身引用,方便链式调用
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 447 行定义.
◆ Translate()
点的坐标平移操作
该函数用于实现点对象的平移操作,分别在x和y坐标上进行平移。
- 参数
-
| dx | 在x坐标上平移的距离 |
| dy | 在y坐标上平移的距离 |
- 返回
- 类自身引用,方便链式调用
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 427 行定义.
◆ operator!=
点类重载不等于号
该重载函数用于比较两个点对象是否不相等,判断的标准是两个点的 x 坐标和 y 坐标至少有一个不相等。
- 模板参数
-
- 参数
-
- 返回
- 返回值
-
| true | 两个点对象的 x 坐标和 y 坐标至少有一个不相等 |
| false | 两个点对象的 x 坐标和 y 坐标均相等 |
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 258 行定义.
◆ operator-
点类重载减号运算符
该重载函数用于实现两个点对象相减,得到一个表示终点减起点的矢量。
- 模板参数
-
- 参数
-
- 返回
- 一个矢量,具体方向由减法关系决定,比如
pt1 - pt2的方向就是从pt2到pt1(指向被减数)
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 369 行定义.
◆ operator<
点类重载小于号
该重载函数用于比较两个点对象的大小关系,如果第一个点对象的 x 坐标小于第二个点对象的 x 坐标,则返回 true;如果两个点对象的 x 坐标相等,那么比较它们的 y 坐标,y 坐标小的点被认为是小于另一个点。
- 模板参数
-
- 参数
-
- 返回
- 点1和点2在二维平面上的相对位置
- 返回值
-
| true | 点1位于点2的左下方或左侧 |
| false | 点1不位于点2的左下方或左侧 |
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 279 行定义.
◆ operator<<
点类重载输出流运算符
该重载函数用于将点对象的坐标信息输出到流中,以便进行输出操作。
- 模板参数
-
- 参数
-
- 返回
- 输出流对象,以便进行链式输出操作
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 388 行定义.
◆ operator<=
点类重载小于等于号
该重载函数用于比较两个点对象的大小关系,如果第一个点对象的 x 坐标小于等于第二个点对象的 x 坐标,则返回 true;如果两个点对象的 x 坐标相等,那么比较它们的 y 坐标,y 坐标小于等于的点被认为是小于等于另一个点。
- 模板参数
-
- 参数
-
- 返回
- 点1和点2在二维平面上的相对位置
- 返回值
-
| true | 点1位于点2的左下方、左侧或重合 |
| false | 点1不位于点2的左下方、左侧或重合 |
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 325 行定义.
◆ operator==
点类重载等于号
该重载函数用于比较两个点对象是否相等,判断的标准是两个点的 x 坐标和 y 坐标均相等。
- 模板参数
-
- 参数
-
- 返回
- 两个点对象是否相等
- 返回值
-
| true | 两个点对象的 x 坐标和 y 坐标均相等 |
| false | 两个点对象的 x 坐标和 y 坐标至少有一个不相等 |
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 237 行定义.
◆ operator>
点类重载大于号
该重载函数用于比较两个点对象的大小关系,如果第一个点对象的 x 坐标大于第二个点对象的 x 坐标,则返回 true;如果两个点对象的 x 坐标相等,那么比较它们的 y 坐标,y 坐标大的点被认为是大于另一个点。
- 模板参数
-
- 参数
-
- 返回
- 点1和点2在二维平面上的相对位置
- 返回值
-
| true | 点1位于点2的右上方 |
| false | 点1不位于点2的右上方 |
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 302 行定义.
◆ operator>=
点类重载大于等于号
该重载函数用于比较两个点对象的大小关系,如果第一个点对象的 x 坐标大于等于第二个点对象的 x 坐标,则返回 true;如果两个点对象的 x 坐标相等,那么比较它们的 y 坐标,y 坐标大于等于的点被认为是大于等于另一个点。
- 模板参数
-
- 参数
-
- 返回
- 点1和点2在二维平面上的相对位置
- 返回值
-
| true | 点1位于点2的右上方、右侧或重合 |
| false | 点1不位于点2的右上方、右侧或重合 |
- 作者
- dreamy-xay
- 日期
- 2023-12-03
在文件 point.hpp 第 348 行定义.
该类的文档由以下文件生成: