МИНИСТЕРСТВО НАУКИ И ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Факультет информатики и вычислительной техники
Кафедра ИВС
Лабораторная работа №3
по дисциплине «Компьютерная графика» «Методы закраски объектов»
Выполнили: студенты группы ВМ -31
Мочалов О.М. Проверил:
доцент кафедры ИВС Морохин Д.В.
Йошкар-Ола 2012г.
Задание и цель работы
Задание:
Заполнить треугольник итеративным алгоритмом закраски 4-связной гранично-определенной области.
Цель работы:
Изучение методов заполнения области определенным цветом, приобретение навыков использования алгоритмов при составлении графических программ.
Теоретическая часть:
В большинстве приложений используется одно из существенных достоинств растровых устройств - возможность заполнения областей экрана.
Существует две разновидности заполнения:
· первая, связанная как с интерактивной работой, так и с программным синтезом изображения, служит для заполнения внутренней части многоугольника, заданного координатами его вершин.
· вторая, связанная в первую очередь с интерактивной работой, служит для заливки области, которая либо очерчена границей с кодом пиксела, отличающимся от кодов любых пикселов внутри области, либо закрашена пикселами с заданным кодом;
Рассмотрим алгоритм заполнения многоугольника.
Простейший способ заполнения многоугольника, заданного координатами вершин, заключается в определении принадлежит ли текущий пиксел внутренней части многоугольника. Если принадлежит, то пиксел заносится.
Определить принадлежность пиксела многоугольнику можно, например, подсчетом суммарного угла с вершиной на пикселе при обходе контура многоугольника. Если пиксел внутри, то угол будет равен 360°, если вне - 0° (рис. 1).
Рис. 1: Определение принадлежности пиксела многоугольнику
Вычисление принадлежности должно производиться для всех пикселов экрана и так как большинство пикселов скорее всего вне многоугольников, то данный способ слишком расточителен. Объем лишних вычислений в некоторых случаях можно сократить использованием прямоугольной оболочки - минимального прямоугольника, объемлющего интересующий объект, но все равно вычислений будет много. Другой метод определения принадлежности точки внутренней части многоугольника будет рассмотрен ниже при изучении отсечения отрезков по алгоритму Кируса-Бека
Блок-схемы алгоритма основных процедур
НЕТ
ДА
Ставим пиксель в центр треугольника
Определяем нарисован ли соседний
пиксель определенным кодом (цветом)
Закрашиваем соседний пиксель определенным
кодом.
НЕТ
Вывод данных
о работе и авторе
Рисование треугольника
ДА
НЕТ
Поиск следующего пикселя, расположенного
с предыдущим закрашенным пикселем
ДА
НЕТ
Пример операции закраски треугольника
Вывод
В процессе выполнения данной работы были изучены методы заполнения области определенным цветом и приобретены навыки использования алгоритмов при составлении графических программ.