c++ - 如何从 Boost Envelope 获得最小边界矩形的所有四个角?
问题描述
我正在使用 boost返回包络函数来找到围绕一组 2d 点的最小边界矩形。它返回一个有两个成员函数的盒子,max_corner()
和min_corner()
。
我想知道我的一组点的最小边界矩形(MBR)的所有四个角,所以我有点困惑。两个角真的足以定义一个矩形吗?当然,给定空间中的两个点,可以容纳无限多个矩形吗?
如何获得 MBR 的所有四个顶点?
解决方案
return_envelope()
创建所谓的轴对齐边界框 (AABB)。
这意味着假设矩形的边缘与 X 和 Y 轴对齐,这极大地限制了一对点可以表示的矩形集合。
给定矩形的左下角和右上角,也就是保存 x 和 y 的最小值和最大值的角,其他两个角可以很容易地确定:
(min_corner[0], min_corner[1])
(min_corner[0], max_corner[1])
(max_corner[0], min_corner[1])
(max_corner[0], max_corner[1])
推荐阅读
- typescript - 在 .d.ts 文件中无法识别 TypeScript 接口
- powershell - 比较powershell中的变量返回true而不是数据
- docker - 禁用气流身份验证
- c++ - 从父数组打印 n 数组树
- r - 通过在数据集中对最后几个月进行分组来计算唯一的泥瓦匠
- nestjs - 如何一起使用 ParseIntPipe 和 Dto?
- mysql - 无论如何要自动化 Azure MySql 导入/导出
- javascript - 以模态形式获取元素值正确的行
- gitlab - 是否可以获得合并请求的最后一次提交 sha?GITLAB API
- c# - UI 被异步等待方法阻塞