【问题标题】:Removing self intersecting poly-lines programatically以编程方式删除自相交多段线
【发布时间】:2017-02-09 13:27:56
【问题描述】:

考虑以下...

给定一个有序的顶点数组

[[1.11, 2.22], [4.44, 3.33], [5.55, 6.66] ...]

其中每个顶点是一个 x,y 坐标,表示为平面上的 (x = 11.11, y = 2.22),整个数组表示一条折线。 Python中检测自相交并删除“打结”行中的“结”的最快方法是什么,结果如下。

【问题讨论】:

    标签: python polyline


    【解决方案1】:

    问题的定义很模糊。了解您对“结”的定义会有所帮助。我的理解是你想要: 1. 找到折线中的第一个和最后一个交点。 2. 得到部分[Vn,第一个交点]和[最后一个交点,V+5],并从中形成一条折线。

    您可以使用 Bentley-Ottmann 算法 (https://en.wikipedia.org/wiki/Bentley%E2%80%93Ottmann_algorithm) 检测所有交叉点并对其进行排序,然后执行其余的操作。

    最好的问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-24
      • 2020-03-25
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多