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