Алгоритм отсечения Ватти - Vatti clipping algorithm

В Ватти вырезка алгоритм[1] используется в компьютерная графика. Позволяет обрезать любое количество произвольной формы предмет полигоны любым количеством произвольной формы обрезать многоугольники. в отличие от Сазерленд-Ходжман и Вейлер – Атертон алгоритмы отсечения полигонов, алгоритм Ватти не ограничивает типы полигонов, которые могут использоваться в качестве объектов или клипов. Можно обрабатывать как сложные (самопересекающиеся) полигоны, так и полигоны с отверстиями. Алгоритм обычно применим только в 2D пространство.

Описание

Подрезка определяется как взаимодействие полигонов объекта и клипа. В то время как обрезка обычно включает в себя поиск перекрестки (области перекрытия) объектов и полигонов обрезки, алгоритмы отсечения также могут применяться с другими логическое отсечение операции: разница, где полигоны отсечения удалять перекрывающиеся регионы от предмета; союз, где отсечение возвращает области, покрытые либо предметными полигонами, либо обрезанными полигонами, и; xor, где отсечение возвращает области, покрытые либо предметными, либо обрезанными полигонами Кроме где они покрываются как предметными полигонами, так и полигонами обрезки.

Алгоритм Ватти включает упорядоченную обработку как объекта, так и обрезки краев полигонов, начиная с самых нижних краев и продвигаясь к вершине; это концептуально похоже на Алгоритм Бентли – Оттмана. Этот линия развертки подход разделяет проблемное пространство на развертки, воображаемые горизонтальные линии, проходящие через каждую вершину участвующих многоугольников. Эти развертки контур лучи сканирования - промежутки между соседними строками развертки. Эти лучи сканирования обрабатываются по очереди, начиная с самого нижнего луча сканирования, при этом алгоритм добавляет точки пересечения в пределах этих лучей сканирования в многоугольники решения.

Смотрите также

Рекомендации

  1. ^ Бала Р. Ватти. «Универсальное решение для обрезки многоугольника», Сообщения ACM, том 35, выпуск 7 (июль 1992 г.), стр. 56–63.

внешняя ссылка