Что такое вырожденные полигоны?


9

Что такое вырожденные полигоны? Как проверить, является ли данная пара полигонов вырожденной или нет?


2
Контекст? Я не верю, что «вырожденный многоугольник» имеет стандартное определение.
Питер Шор

Если бы у меня было два выпуклых многоугольника, как бы выродились? имеют ли они общую сторону или перекрываются? или нет? или оба?
Алиса

1
Я предполагаю, что это многоугольники, в которых две смежные вершины одинаковы.
Юваль Фильмус

Ответы:


9

Многоугольник вырожден, если некоторые его вершины лежат друг на друге. например, треугольник (0,0), (0,1), (0,0) вырожден. Он имеет 3 стороны и 3 вершины, но две вершины повторяются. Можно повторить вершину несколько раз (например, (0,0), (0,0), (0,0) - другой вырожденный треугольник). По определению проверить, является ли многоугольник вырожденным или нет, легко.

Но каковы вырожденные полигоны? Одно из приложений с графическим ускорением (3D рисование) выглядит следующим образом:

В 3D-графике графические процессоры обычно используют триангуляцию для рендеринга изображений. (Простая) причина использования треугольников в том, что они являются простейшими 2D объектами, поэтому не требуют большого количества оборудования.

Если мы хотим нарисовать сложное трехмерное изображение, из-за этого ограничения GPU, мы должны разложить его на несколько треугольников. Но если мы вызовем графический процессор для визуализации каждого треугольника по отдельности, это будет очень медленно (из-за количества вызовов). Таким образом, треугольная полоса используется для уменьшения количества обращений к графическому процессору. Хорошее объяснение полос треугольника можно найти в документации Microsoft: полосы треугольника , также вы можете увидеть вики для: полосы треугольника .

Но проблема возникает, когда мы хотим нарисовать два отдельных объекта в одной полосе. В этом случае помогают вырожденные треугольники. Графический процессор может обнаружить вырожденные треугольники и пропустить их рисунок. Таким образом, мы можем соединить две отдельные полосы одним вырожденным треугольником.

n


1
Не могли бы вы уточнить, означает ли вырождение только смежные равные вершины или определение включает несмежные равные вершины? (Искренний вопрос - не просто попытка улучшить ответ)
Эрик Хермансен,

0

Вырожденный многоугольник - это тот, который имеет нулевую площадь.


Если пользователь user742 ответит правильно, это не будет правдой. Возьми квадрат. Если две и только две вершины совпадают, то это треугольник и, следовательно, площадь> 0.
HankCa

и вы это прояснили хорошо. треугольник не вырожден.
Габриэль Рохведер

0

Как отметили другие, это зависит. Вообще говоря, многоугольник невырожден, если у него нет аномальных точек, но это только отталкивает проблему на один шаг назад; что такое "аномальный"?

Реальный ответ заключается в том, что многоугольник вырожден, если он нарушает спецификацию. Немного грубый ответ заключается в том, что многоугольник вырожден, если это крайний случай, который ваш алгоритм не может обработать.

Вот пример из мира ГИС. Спецификация простых функций OGC содержит очень точное определение того, что делает полигон «допустимым». Цитата из раздела 6.1.11.1:

Утверждения для полигонов (правила, которые определяют допустимые полигоны) следующие:

а) полигоны топологически замкнуты;

б) Граница многоугольника состоит из набора линейных колец, которые составляют его внешние и внутренние границы;

c) Никакие два кольца на пересечении границы и кольца на границе многоугольника не могут пересекаться в точке, но только как касательная, например

PPolygon,c1,c2P.Boundary,c1c2,p,qPoint,p,qc1,pq,[pc2][δ>0|[|pq|<δ] [qc2]]

Примечание. Последнее условие говорит о том, что в точке, общей для двух кривых, соседние точки не могут быть общими. Это заставляет каждую общую точку быть точкой касания.

PPolygon,P=P.Interior.Closure

e) Внутренность каждого многоугольника является множеством связных точек;

f) Внешность многоугольника с одним или несколькими отверстиями не связана. Каждое отверстие определяет связанный компонент экстерьера.

В приведенных выше утверждениях интерьер, замыкание и экстерьер имеют стандартные топологические определения. Комбинация (a) и (c) делает Polygon регулярным замкнутым множеством точек.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.