Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_na_ekzamen (2).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
661.5 Кб
Скачать
  1. Алгоритмы заливки областей на основе построчного сканирования.

Основной принцип: происходит последовательное сканирование строк и определяется принадлежность каждого пикселя внутри области, которую нужно закрасить.

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

При этом достаточно определить X-координату пересечения строк сканирования с границами внутренней области. Пары отсортированных точек пересечения задают интервалы заливки. Если какие-либо ребра или границы пересеклись i-той строкой, то они, скорее всего, так же будут пересекаться и (i+1)-ой строкой. Это предположение называется когерентностью ребер. При переходе к новой строке легко вычисляются новые X-координаты точки пересечения с ребрами.

xi+1 = xi + 1/k, где k = dy/dx, dy = 1(т.к соседняя строка)=> xi+1 = xi + dx.

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

  1. Алгоритмы заливки областей на основе затравочного заполнения.

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

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

По способам задания области алгоритмы делятся на два типа:

  1. Гранично-определяемые, задаваемые своей замкнутой границей, такой, что коды границы пикселей отличны от кодов внутренней перекрашиваемой области (на коды пикселей внутри области накладываются условия: должны быть отличны от кода границы, должны быть отличны от кодов перекраски). Если внутри такой области имеется еще одна граница, нарисованная пикселями с такими же кодами, то составная часть обрасти не должна закрашиваться.

  2. Внутренне-определяемые: области, нарисованные одним определенным кодом области. При заливке этот код заменяется на новый код закраски. Заливаемая область или ее граница – это некоторое связное множество пикселей. по способам доступа к соседним пикселям обрасти делятся на:

    1. четырехсвязные – доступ осуществляется по 4 направлениям;

    2. восьмисвязные – доступ осуществляется по 8-ми направлениям.

8-мисвязную область можно заполнить как 4-х, так и 8-мисвязными алгоритмами. Обратное неверно.

Заливка выполняется следующим образом:

        1. Определяется, является ли пиксель граничным или уже закрашенным

        2. Если нет, то пиксель перекрашивается, а затем проверяется, надо ли перекрашивать 4 соседних пикселя.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]