36. Заливка области с затравкой
При этом тем или иным образом задается заливаемая (перекрашиваемая) область, код пиксела, которым будет выполняться заливка и начальная точка в области, начиная с которой начнется заливка.
По способу задания области делятся на два типа:
гранично-определенные, задаваемые своей (замкнутой) границей такой, что коды пикселов границы отличны от кодов внутренней, перекрашиваемой части области. На коды пикселы внутренней части области налагаются два условия - они должны быть отличны от кода пикселов границы и кода пиксела перекраски. Если внутри гранично-определенной области имеется еще одна граница, нарисованная пикселами с тем же кодом, что и внешняя граница, то соответствующая часть области не должна перекрашиваться;
внутренне-определенные, нарисованные одним определенным кодом пиксела. При заливке этот код заменяется на новый код закраски.
В этом состоит основное отличие заливки области с затравкой от заполнения многоугольника. В алгоритмах же заливки области с затравкой нам вначале надо прочитать пиксел, затем определить принадлежит ли он области и если принадлежит, то перекрасить.
Заливаемая область или ее граница - некоторое связное множество пикселов. По способам доступа к соседним пикселам области делятся на 4-х и 8-ми связные. В 4-х связных областях доступ к соседним пикселам осуществляется по четырем направлениям - горизонтально влево и вправо и в вертикально вверх и вниз. В 8-ми связных областях к этим направлениям добавляются еще 4 диагональных. Используя связность мы может, двигаясь от точки затравки, достичь и закрасить все пикселы области.
Важно отметить, что для 4-х связной прямоугольной области граница 8-ми связна (рис. а) и наоборот у 8-ми связной области граница 4-х связна (см. рис. б). Поэтому заполнение 4-х связной области 8-ми связным алгоритмом может привести к "просачиванию" через границу и заливке пикселов в примыкающей области.
В общем, 4-х связную область мы можем заполнить как 4-х, так и 8-ми связным алгоритмом. Обратное же неверно. Так область на рис. а мы можем заполнить любым алгоритмом, а область на рис. б, состоящую из двух примыкающих 4-х связных областей можно заполнить только 8-ми связным алгоритмом.
Рис. 0.5.1: Связность областей и их границ
С использованием связности областей и стека можно построить простые алгоритмы закраски как внутренне, так и гранично-определенной области. В [] рассматриваются совсем короткие рекурсивные подпрограммы заливки. В [] - несколько более длинные итеративные подпрограммы.
- Компьютерная графика.
- 2. Задачи кг.
- Графические функции примитивов.
- 4. Вывод текста.
- 5. Понятие холста.
- 6. Графические примитивы
- 7. Базовые компоненты
- 9. Метрическое пространство
- 10) Двумерные аффинные преобразования координат.
- Поворот Rotate
- Тражение Reflection
- Сдвиг (Деформация)
- Растяжение и сжатие
- 16. Окно и область вывода.
- 17. Растровая графика, общие сведения
- Достоинства и недостатки растровой графики
- 18. Цвет в растре. Модель rgb.Кодировка цвета и яркости.
- 19. Цвет в растре. Модель cmy.
- 20. Растровые дисплеи.
- 23. Системы с телевизионным растром
- 24. Видеоадаптер
- 25.Дисплеи с регенерацией
- 26. Понятие фрактала и фрактальной графики.
- 27. Построение линий на растре.
- 28. Алгоритм Брезенхэма
- 29. Векторная графика: назначение, элементы, структура.
- 30. Каноническое уравнение прямой.
- 31. Параметрическое уравнение прямой и уравнение в отрезках. Параметрические уравнения прямой
- 32. Алгоритм определения принадлежности точки внутренности треугольника
- 34. Кривая Безье. Геометрическая интерпретация.
- 35. Раскраска на основе растровой развертки.
- 36. Заливка области с затравкой
- 0.5.1 Простой алгоритм заливки
- 37. Понятие точки схода.
- 38. Перспективные преобразования: подходы и решения.
- 39. Видовое преобразование координат.
- 40. Перспективное преобразование координат.
- 41. Аналитическая модель поверхности
- Векторная полигональная модель
- 43. Равномерная сетка
- Неравномерная сетка. Изолинии