假设我有一个矩形:
A------B
| |
| |
D------C
通常,这个矩形由描述闭合多边形的坐标数组A-B-C-D-A组成。
现在我没有这样的数组,而是一堆单独的行B-A,D-A,B-C-D。当同时绘制两者时,结果始终是相同的矩形,但在第二种情况下,它使用了更多的数据。因此,我想重新排列和优化第二种情况,以便像第一种情况一样获得一个坐标数组。
我的问题:这可以通过 boost::geometry 或 boost::p olygon?如果是,如何做到这一点?如果没有:还有其他可能性吗?
谢谢!
不,在 Boost.Geometry 中没有这方面的算法。
但是,有些事情可能会帮助您编写自己的代码:
boost::geometry::equals()
- 检查一个点是否等于另一个点,这是完成的 WRT 机器 epsilon,因此您可以考虑使用自己的版本严格比较坐标boost::geometry::intersects()
- 检查线串是否与其他线串相交boost::geometry::index::rtree<>
- 加快搜索过程- 使用线串的 ID 存储端点并搜索相等的点 存储线串
- 的边界框并搜索相应的线串
boost::geometry::envelope()
- 计算线串的边界框boost::geometry::correct()
- 检查多边形/环的方向,并反转以匹配类型定义boost::geometry::is_valid()
- 验证多边形/环是否有效(例如,边缘不与其他边缘交叉(