重新排列单线以形成闭合多边形?



假设我有一个矩形:

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()- 验证多边形/环是否有效(例如,边缘不与其他边缘交叉(

相关内容

  • 没有找到相关文章

最新更新