Существует ли эффективный алгоритм для нахождения всех пересечений множества бесконечных линий? - PullRequest
1 голос
/ 27 марта 2019

Существуют эффективные (по сравнению с O (n 2 ) парное тестирование) алгоритмы для нахождения всех пересечений в наборе отрезков, такие как алгоритм Бентли-Оттмана.Тем не менее, я хочу найти все пересечения во множестве бесконечных линий.Когда интересующая область является чем-то конечным, например, прямоугольником, алгоритмы пересечения отрезков линий могут применяться после обрезки линий.Но

  • Есть ли более простой или более эффективный способ, чем просто обрезка линий и применение алгоритмов пересечения отрезков?
  • Существует ли эффективный алгоритм для всех пересечений по всей плоскости длянабор линий?

Ответы [ 2 ]

7 голосов
/ 27 марта 2019

В общем случае (не все линии параллельны) есть O (n ^ 2) пересечений, поэтому простой цикл с вычислением пересечений является лучшим подходом
(нет способа получить n*(n-1)/2 точек без вычислений)

В случае существования большое количество параллельных линий образуют сначала линии группировки по направлению и проверяют только пересечения между линиями в разных группах

1 голос
/ 27 марта 2019

Если линии находятся в общем положении, все пары пересекаются и исчерпывающее вычисление является оптимальным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...