【发布时间】:2012-12-23 06:06:14
【问题描述】:
假设我在一般位置有 n 条线段。对于我的 n 个片段中的每一个片段,我如何快速计算它与其他 n-1 个片段相交的数量?
我可以在 O(n2) 时间内天真地做到这一点。我可以在 O((n + k) log n) 时间内使用相当简单的扫描线算法(Bentley-Ottmann)找到所有交叉点,其中 k 是此类交叉点的数量,然后将我找到的交叉点聚合成一堆很重要。
不过,我不需要找到交叉点;我只想知道有多少。我看不出如何将扫描线算法修改得更快,因为它需要为每个交叉点在树中重新排序两个东西,而且我想不出任何其他不会遇到同样问题的技术。
我也有兴趣了解如何计算总共有多少个交叉口。
【问题讨论】:
标签: algorithm language-agnostic geometry computational-geometry