![]() |
1
1
不久前,我解决了一个类似的问题,实现了中描述的扫描线算法:
它将问题从O(N)转换为O(N log N)。 在Jivan的评论后添加: 对于一个集合中的片段与第二个集合中片段的比较,您可以尝试以下方法:
免责声明:我还没有实现这个。 |
![]() |
2
0
如果你有数十亿个片段,我建议你使用这样的库: https://github.com/Permafacture/python-computational-geometry ,它允许您批量计算。 |
![]() |
3
0
对于第一个问题,我建议只循环遍历所有分段,并通过比较两个X极值和两个Y极值来对条目进行排序,将分段表示设置为类似
(这种表示方式应该减少您需要在每个段上执行的操作数量,最多两次交换) 然后存储结果。 然后,您可以循环浏览bar中的分段(应该更有效,因为分段更少),并使用您的过滤条件。您可以按列写入条件,因此第一个将是
你对其他三个也有同样的看法。然后,您可以使用np.local_and()组合布尔数组,得到结果行。 |