gpt4 book ai didi

c++ - 重新排列单线以形成闭合的多边形?

转载 作者:行者123 更新时间:2023-12-02 10:13:31 25 4
gpt4 key购买 nike

假设我有一个矩形:

A------B
| |
| |
D------C
通常,此矩形由描述封闭多边形的坐标A-B-C-D-A数组构成。
现在我没有这样的数组,而是一堆单独的行B-A,D-A,B-C-D。绘制两者时,结果始终是相同的矩形,但在第二种情况下,将使用更多的数据。因此,我想重新排列和优化第二种情况,以便获得与第一种情况相同的单个坐标数组。
我的问题:boost::geometry或boost::polygon是否可能以某种方式出现?如果是,该怎么办?如果否:还有其他可能性吗?
谢谢!

最佳答案

不,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()-验证多边形/环是否有效(例如,边线不与其他边线交叉)
  • 关于c++ - 重新排列单线以形成闭合的多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62690650/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com