考虑以下内容......
给定一个有序的顶点数组
[[1.11,2.22],[4.44,3.33],[5.55,6.66] ......]
其中每个顶点是在平面上表示为(x = 11.11,y = 2.22)的x,y坐标,并且整个数组表示多义线。 Python中检测自相交并删除“打结”行中“结”的最快方法是什么,以便得到以下结果。
答案 0 :(得分:1)
问题的定义含糊不清。理解你定义为" knot"会很有帮助。我的理解是你想: 1.找到折线中的第一个和最后一个交点。 2.获取零件[Vn,第一个交点]和[最后一个交点,V + 5]并从中形成折线。
你可以使用Bentley-Ottmann算法(https://en.wikipedia.org/wiki/Bentley%E2%80%93Ottmann_algorithm)来检测所有交叉点并对它们进行排序,然后完成剩下的工作。
祝你好运