Jump to content

Алгоритм отсечения Вейлера – Атертона

(Перенаправлено с Вейлера-Атертона )

Алгоритм Вейлера -Атертона полигонов отсечения представляет собой алгоритм . Он используется в таких областях, как компьютерная графика и разработка игр, где необходимо отсечение полигонов. Он позволяет обрезать объект или многоугольник-кандидат произвольной формы с помощью обрезающего многоугольника/области/региона .

Обычно это применимо только в 2D . Однако его можно использовать в 3D за счет определения видимой поверхности и с повышенной эффективностью за счет Z-упорядочения . [ 1 ]

Предварительные условия

[ редактировать ]
Подразделение с помощью алгоритма Вейлера-Атертона

Перед применением к многоугольнику алгоритм требует выполнения нескольких предварительных условий:

  • Полигоны-кандидаты должны быть ориентированы по часовой стрелке.
  • Полигоны-кандидаты не должны быть самопересекающимися (т.е. повторно входящими).
  • Алгоритм может поддерживать дыры (как многоугольники против часовой стрелки, полностью внутри родительского многоугольника), но требует дополнительных алгоритмов, чтобы решить, какие многоугольники являются дырами, после чего объединение многоугольников может быть выполнено с использованием варианта алгоритма.

Алгоритм

[ редактировать ]

Учитывая полигон A в качестве области отсечения и полигон B в качестве многоугольника, подлежащего отсечению, алгоритм состоит из следующих шагов:

  1. Перечислите вершины многоугольника A области отсечения и вершины рассматриваемого многоугольника B.
  2. Пометьте перечисленные вершины предметного многоугольника B как внутри, так и снаружи области отсечения A.
  3. Найдите все пересечения полигонов и вставьте их в оба списка, связывая списки на пересечениях.
  4. Сгенерируйте список «входящих» пересечений – пересечений, в которых вектор от пересечения до следующей вершины рассматриваемого многоугольника B начинается внутри области отсечения.
  5. Следуйте за каждым пересечением по часовой стрелке вокруг связанных списков, пока не будет найдена начальная позиция.

Если пересечений нет, то должно выполняться одно из трех условий:

  1. A находится внутри B — возврат A для отсечения, B для слияния.
  2. B находится внутри A — верните B для отсечения, A для слияния.
  3. A и B не перекрываются — верните None для отсечения или A и B для слияния.

Заключение

[ редактировать ]

Один или несколько вогнутых многоугольников могут создавать более одного пересекающегося многоугольника. Выпуклые многоугольники будут иметь только один пересекающийся многоугольник.

Тот же алгоритм можно использовать для объединения двух многоугольников, начиная с исходящих пересечений, а не с входящих. Однако это может привести к образованию отверстий против часовой стрелки.

Некоторые комбинации полигонов могут быть трудно разрешить, особенно если разрешены отверстия.

Точки, расположенные очень близко к краю другого многоугольника, могут рассматриваться как внутри, так и снаружи до тех пор, пока их статус не будет подтвержден после того, как все пересечения будут найдены и проверены; однако это увеличивает сложность.

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

См. также

[ редактировать ]
  1. ^ Фоли, Джеймс, Андрис ван Дам, Стивен Файнер и Джон Хьюз. «Компьютерная графика: принципы и практика». Издательство Аддисон-Уэсли. Ридинг, Массачусетс: 1987. страницы 689–693.


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b31a0fcf49265068003e049dd037f54a__1688439060
URL1:https://arc.ask3.ru/arc/aa/b3/4a/b31a0fcf49265068003e049dd037f54a.html
Заголовок, (Title) документа по адресу, URL1:
Weiler–Atherton clipping algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)