Что такое вырожденные полигоны? Как проверить, является ли данная пара полигонов вырожденной или нет?
9
Что такое вырожденные полигоны? Как проверить, является ли данная пара полигонов вырожденной или нет?
Ответы:
Многоугольник вырожден, если некоторые его вершины лежат друг на друге. например, треугольник (0,0), (0,1), (0,0) вырожден. Он имеет 3 стороны и 3 вершины, но две вершины повторяются. Можно повторить вершину несколько раз (например, (0,0), (0,0), (0,0) - другой вырожденный треугольник). По определению проверить, является ли многоугольник вырожденным или нет, легко.
Но каковы вырожденные полигоны? Одно из приложений с графическим ускорением (3D рисование) выглядит следующим образом:
В 3D-графике графические процессоры обычно используют триангуляцию для рендеринга изображений. (Простая) причина использования треугольников в том, что они являются простейшими 2D объектами, поэтому не требуют большого количества оборудования.
Если мы хотим нарисовать сложное трехмерное изображение, из-за этого ограничения GPU, мы должны разложить его на несколько треугольников. Но если мы вызовем графический процессор для визуализации каждого треугольника по отдельности, это будет очень медленно (из-за количества вызовов). Таким образом, треугольная полоса используется для уменьшения количества обращений к графическому процессору. Хорошее объяснение полос треугольника можно найти в документации Microsoft: полосы треугольника , также вы можете увидеть вики для: полосы треугольника .
Но проблема возникает, когда мы хотим нарисовать два отдельных объекта в одной полосе. В этом случае помогают вырожденные треугольники. Графический процессор может обнаружить вырожденные треугольники и пропустить их рисунок. Таким образом, мы можем соединить две отдельные полосы одним вырожденным треугольником.
источник
Вырожденный многоугольник - это тот, который имеет нулевую площадь.
источник
Как отметили другие, это зависит. Вообще говоря, многоугольник невырожден, если у него нет аномальных точек, но это только отталкивает проблему на один шаг назад; что такое "аномальный"?
Реальный ответ заключается в том, что многоугольник вырожден, если он нарушает спецификацию. Немного грубый ответ заключается в том, что многоугольник вырожден, если это крайний случай, который ваш алгоритм не может обработать.
Вот пример из мира ГИС. Спецификация простых функций OGC содержит очень точное определение того, что делает полигон «допустимым». Цитата из раздела 6.1.11.1:
источник