Мегаобучалка Главная | О нас | Обратная связь


Алгоритмы заполнение многоугольников методом САР



2020-03-19 763 Обсуждений (0)
Алгоритмы заполнение многоугольников методом САР 0.00 из 5.00 0 оценок




 

Цель работы: изучение алгоритма с упорядоченным списком ребер.

Простейший способ закраски многоугольника состоит в проверке принадлежности каждой точки этому многоугольнику. Для организации и управления списком активных ребер (САР) можно использовать ряд методов. Сначала отрезки изображения сортируются по наибольшей координате у. В одном из простых методов такой сортировки используются два перемещающихся указателя в отсортированном списке. Указатель начала используется для обозначения начала списка активных ребер, а указатель конца – для обозначения конца этого списка. На рисунке 5.1 представлена сцена из нескольких отрезков с тремя характерными сканирующими строками. Указатель начала в исходном положении устанавливается на начало этого списка, т.е. на отрезок ВС. Указатель конца установлен на тот последний отрезок в списке, который начинается выше рассматриваемой сканирующей строки, т. е. на отрезок BD. При сканировании изображения необходимо корректировать САР, при этом указатель конца передвигают вниз, чтобы включить в список новые отрезки, начинающиеся на текущей сканирующей строке или выше нее. В то же самое время указатель начала передвигают вниз, чтобы исключить отрезки, кончающиеся выше текущей сканирующей строки. Это изображено на рисунке 5.1 для сканирующих строк, помеченных цифрами 2 и 3.

 

1
2
3
A
B
C
D

 

Рисунок 5.1 – Сканирующая строка

 

Перед сканированием всем ребрам соответствует флаг в значении False. По мере увеличения значения y сканирующей строки ведется проверка условия

 

Yimin <= Yскан <= Yimax,                                      (5.1)

 

где Yimin, Yimax, Yскан – минимальная и максимальная координата i-го отрезка и координата сканирующей строки.

Если данное условие выполняется, то флагу соответствующего отрезка присваивается значение True и данный отрезок обрабатывается.

 

Практическое задание

Разработать программу, закрашивающую объект № 1 методом САР.

Содержание отчета: блок-схема данной программы; краткие ответы на вопросы, приведенные в таблице 5.1; распечатка листа Excel с результатами.

 

Таблица 5.1 – Вопросы для защиты

 

Вопрос Рейтинг
Как определяется наименьшей прямоугольник, содержащий внутри себя многоугольник 1
Дайте определение термину «Активное ребро» 1
Как определить для каждого активного ребра многоугольника точки пересечений со сканирующими строками 1
Пояснить схему алгоритма закраски треугольника методом САР 1
Пояснить схему алгоритма закраски четырехугольника 1
Дать пояснения операторам, используемым в программе 1

 

Алгоритмы заполнение многоугольников методом заливки

 

Цель работы: изучение алгоритма заполнения с затравкой.

В рассмотренном выше алгоритме заполнение происходит в порядке сканирования. Иной подход используется в алгоритмах заполнения с затравкой. В них предполагается, что известен хотя бы один пиксель из внутренней области многоугольника. Алгоритм пытается найти и закрасить все другие пиксели, принадлежащие внутренней области. Все пиксели на границе области имеют другой цвет. Гранично-определенные области могут быть 4- или 8-связными. Если область 4-связная, то любого пикселя в области можно достичь с помощью комбинации движений только в четырёх направлениях: налево, направо, вверх, вниз. Для 8-связной области пикселя можно достичь с помощью комбинации движений в двух вертикальных, двух горизонтальных и четырёх диагональных направлениях.

Используя стек, можно разработать простой алгоритм заполнения гранично-определенной области. Стек (англ. stack – стопка) – абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO (англ. last in – first out, «последним пришёл – первым вышел»). Когда новые значения добавляются или помещаются в стек, все остальные значения опускаются вниз на один уровень. Когда значения удаляются или извлекаются из стека, остальные значения всплывают или поднимаются вверх на один уровень. Со стеком возможны три операции: добавление элемента (push), удаление элемента (pop) и чтение головного элемента (peek).

Простой алгоритм заполнения с затравкой можно представить в следующем виде:

Затравка(х, у) выдает затравочный пиксель

Пиксел(х, у) = Затравка(х, у)       инициализируем стек

Push Пиксел(х, у)

while (стек не пуст)

Pop Пиксел(х, у) извлекаем пиксел из стека

if Пиксел(х, у) < > Нов_значение then

Пиксел(х, у) = Нов_значение

end if

проверим, надо ли помещать соседние пикселы в стек

if (Пиксел(х + 1, у) < > Нов_значение and Пиксел(х + 1, у) < > Гран_значение) then

Push Пиксел (х + 1, у)

if (Пиксел(х, у + 1) < > Нов_значение and Пиксел(х, у + 1) < > Гран_значение) then

Push Пиксел (х, у + 1)

if (Пиксел(х – 1, у) < > Нов_значение and Пиксел(х – 1, у) < > Гран_значение) then

Push Пиксел (х - 1, у)

if (Пиксел(х, у – 1) < > Нов_значение and Пиксел(х, у – 1) < > Гран_значение) then

Push Пиксел (х, у – 1) end if

end while.

В алгоритме проверяются и помещаются в стек 4-связные пиксели, начиная с правого от текущего пикселя. Направление обхода пикселей – против часовой стрелки.

Практическое задание

 

Составить алгоритм и программу для отображения объекта № 2 методом заливки.

Содержание отчета: блок-схема данной программы; краткие ответы на вопросы, приведенные в таблице 6.1; распечатка листа Excel с результатами.

 

Таблица 6.1 – Вопросы для защиты

 

Вопрос Рейтинг
Какая область называется гранично-определенной 1
В чем различие между 8-связной и 4-связной областью 1
Как определялся затравочный пиксел 1
Для чего используется стек 1
Пояснить схему алгоритма закраски 1

 



2020-03-19 763 Обсуждений (0)
Алгоритмы заполнение многоугольников методом САР 0.00 из 5.00 0 оценок









Обсуждение в статье: Алгоритмы заполнение многоугольников методом САР

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (763)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)