任何段的Bentley-Ottmann算法

时间:2015-05-19 19:09:32

标签: java algorithm time-complexity computational-geometry line-intersection

我已经实现了Bentley-Ottmann算法,并且还处理了这里提到的边缘情况:http://en.wikipedia.org/wiki/Bentley%E2%80%93Ottmann_algorithm#Special_position_and_numerical_precision_issues

然而,它仍不适用于所有线段,例如使用此线段,其中仅找到左侧交叉点,而不是第二个线段(左侧的前2行在第一个时在扫描线字典中反转)交集从事件优先级队列中提取为事件:enter image description here

或者在一个有点复杂的情况下,仍然只识别左起第一个交叉点:enter image description here

我应该在算法中添加什么或更改它以考虑这种情况(当然还要保持其O(n log n)复杂度)?

编辑:另一个“脏”的例子,这次没有找到交叉点:

enter image description here

编辑2: 从第28页开始,请参阅算法伪代码和模拟: http://www-ma2.upc.es/vera/wp-content/uploads/2012/10/intersection-of-segments.pdf

0 个答案:

没有答案