В последние дни я искал и исследовал Интернет, чтобы найти подходящий метод для моей проблемы.
Проблема:
Обрезать вогнутый многоугольник против бесконечной линии без направления (На самом деле многоугольник против плоскости в 3d, но проблема схожа, я думаю). В настоящее время я использую Сазерленда-Ходжмана, но получающиеся в результате многоугольники иногда содержат части с нулевой площадью, созданные из вырожденных ребер, и также не поддерживают многоугольники, содержащие отверстия.
Лучший алгоритм, который я нашел, который мог бы решить мою проблему - это алгоритм Вейлера-Атертона, но он предназначен для обрезки многоугольника с ребрами по часовой стрелке, и все, что у меня есть, - это бесконечная линия (в 3d плоскости), в которой отсутствует информация о направлении. 1007 *
Вопрос:
Существует ли алгоритм обрезки вогнутого многоугольника, который соответствует моим потребностям, или у кого-нибудь есть предложения о том, как изменить алгоритм Вейлера-Атертона для работы в этом случае? Существуют веб-страницы, которые предполагают, что его можно обобщить для поддержки большего числа случаев, но я не могу понять это.
// Отношения
Айкен