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