Пересечение многоугольника и линейного сегмента с пересекающейся стороной многоугольника.

Я пытаюсь получить пересечение многоугольника и отрезка линии. Я вижу, что могу легко решить эту проблему с помощью геометрии наддува. Хотя мне нужна еще одна информация при вычислении пересечения, мне нужно знать, какая из сторон многоугольника пересекала линейный сегмент. Может ли кто-нибудь предложить мне простой способ получить эту информацию? ...

Большое спасибо

Аваниндра


person Avanindra Singh    schedule 08.10.2013    source источник


Ответы (2)


Разбейте многоугольник на отрезки и пересекайте каждый из них по отдельности.

person tfinniga    schedule 09.10.2013
comment
Это уничтожило бы цель быстрого пересечения. На самом деле, иногда мне нужно обрезать от 10 до 100 тысяч лучей или сегментов. - person Avanindra Singh; 09.10.2013

Без труда? Ну, может быть, не так-то просто.

Вы изучали деревья разбиения двоичного пространства (BSP)? http://en.wikipedia.org/wiki/Binary_space_partitioning

Как правило, если вам нужна теория и код для задач вычислительной геометрии, сначала подумайте о том, чтобы заглянуть на веб-сайт Geometric Tools или на соавтор книги создателя веб-сайта:

http://www.geometrictools.com/SampleMatMathematics/Boolean2D/Boolean2DBody.html

Есть и другие хорошие учебники по вычислительной геометрии, но Schneider & Eberly - моя любимая книга.

person Rethunk    schedule 22.10.2013