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

线的比较仿函数 更多...

#include <line.hpp>

Public 成员函数

 CompareByLength (bool is_rough=false)
 线的比较仿函数的带参构造函数(通过线的长度比较)
 
bool operator() (const Line &line1, const Line &line2) const
 线的比较仿函数重载括号运算符
 

详细描述

线的比较仿函数

该仿函数可用于对线进行长度比较,可以指定计算线长的方法。计算线的长度可以选择精确计算或者粗略计算,默认情况下是使用精确计算,具体情况请查看 Length 函数。

注解
通过调用 cm::Line::CompareByLength(false) 可以创建一个按照线的精确长度升序排列的比较仿函数,而调用 cm::Line::CompareByLength(true) 则可以创建一个按照线的粗略长度升序排列的比较仿函数。该比较仿函数可以用于排序算法中,例如 cm::List<T>::Sort() 或 std::sort 等。
示例
// 初始化线列表
cm::List<cm::Line> lines = {{1, 2, 1, 7}, {0, 0, 4, 4}};
// 线列表按照线的精确长度升序排序
lines.Sort(cm::Line::CompareByLength(false));
// lines: [{ pt1: { x: 1, y: 2 }, pt2: { x: 1, y: 7 }, { pt1: { x: 0, y: 0 }, pt2: { x: 4, y: 4 }]
// 线列表按照线的粗略长度升序排序
lines.Sort(cm::Line::CompareByLength(true));
// lines: [{ pt1: { x: 0, y: 0 }, pt2: { x: 4, y: 4 }, { pt1: { x: 1, y: 2 }, pt2: { x: 1, y: 7 }]
点类
Definition point.hpp:52
线的比较仿函数
Definition line.hpp:159
作者
dreamy-xay
日期
2024-02-01

在文件 line.hpp159 行定义.

构造及析构函数说明

◆ CompareByLength()

cm::Line::CompareByLength::CompareByLength ( bool is_rough = false)
inlineexplicit

线的比较仿函数的带参构造函数(通过线的长度比较)

该构造函数用于初始化 CompareByLength 对象,并设置是否获取线的粗糙长度。可以选择获取线的粗糙长度(横线:长度为两点 x 坐标差,竖线:长度为两点 y 坐标差),或者获取线的精准长度(线段两点距离)。默认情况下,构造函数将is_rough参数设置为false,即获取线的精准长度。

参数
is_rough是否获取线的粗糙长度 默认为 false
作者
dreamy-xay
日期
2023-12-05

在文件 line.hpp372 行定义.

成员函数说明

◆ operator()()

bool cm::Line::CompareByLength::operator() ( const Line & line1,
const Line & line2 ) const
inline

线的比较仿函数重载括号运算符

该函数用于比较两条线的长度。根据构造函数中设定的is_rough参数,决定是使用粗糙长度还是精准长度进行比较,然后返回比较结果。

参数
line1线1
line2线2
返回
线的比较结果
返回值
trueline1的长度小于line2的长度
falseline1的长度大于等于line2的长度
作者
dreamy-xay
日期
2023-12-04

在文件 line.hpp390 行定义.

函数调用图:

该结构体的文档由以下文件生成: