Предположим, что есть несколько выпуклых многоугольников на плоскости, возможно, карта. Эти многоугольники могут сталкиваться друг с другом и иметь общий край, но не могут перекрываться.
Чтобы проверить, перекрываются ли два многоугольника P и Q , сначала я могу проверить каждое ребро в P , чтобы увидеть, пересекается ли оно с любым из ребер в Q . Если пересечение найдено, я объявляю, что P и Q пересекаются. Если ничего не пересекается, я должен проверить, что P полностью содержится в Q , и наоборот. Далее, есть случай, что P == Q . Наконец, есть случай, который разделяет несколько ребер, но не все. (Эти два последних случая, вероятно, можно рассматривать как один и тот же общий случай, но это может не иметь значения.)
У меня есть алгоритм, который определяет, где пересекаются два отрезка. Если два сегмента коллинеарны, они не считаются пересекающимися для моих целей.
Правильно ли я перечислил дела? Любые предложения для тестирования в этих случаях?
Обратите внимание, что я не ищу новый выпуклый многоугольник, который является пересечением, я просто хочу знать, существует ли пересечение. Существует много хорошо документированных алгоритмов для поиска пересечения, но мне не нужно прилагать все усилия.