Данное методическое пособие предназначено для студентов специальностей в области информационных технологий и программной инженерии. В издании подробно рассматриваются фундаментальные алгоритмы компьютерной графики: от формирования цветов и построения примитивов (отрезков, окружностей) до сложных методов визуализации 3D-сцен, включая аффинные преобразования, алгоритмы удаления невидимых граней (Робертса, Z-буфер) и современные модели освещения (Гуро, Фонга).
- Выходные данные
- КОМПЬЮТЕРНАЯ ГРАФИКА
- Введение
- 1 Формирование цветов
- 2 Алгоритмы вычерчивания отрезков прямых
- 3 Формирование цветов с помощью дизеринга
- 4 Алгоритмы вычерчивания окружностей
- 5 Алгоритмы заполнение многоугольников методом САР
- 6 Алгоритмы заполнение многоугольников методом заливки
- 7 Аффинные преобразования
- 8 Метод Робертса
- 9 Метод Z-буфера
- 10 Модели отражения света
- 11 Модель отражения света Гуро
- 12 Модель отражения света Фонга
Выходные данные
ГОСУДАРСТВЕННОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «БЕЛОРУССКО-РОССИЙСКИЙ УНИВЕРСИТЕТ»
Кафедра «Автоматизированные системы управления»
КОМПЬЮТЕРНАЯ ГРАФИКА
Методические рекомендации к лабораторным работам для студентов специальности 1-53 01 02 «Автоматизированные системы обработки информации» и направлениям подготовки 09.03.01 «Информатика и вычислительная техника», 09.03.04 «Программная инженерия» дневной и заочной форм обучения
Могилев 2018
УДК 621.01, ББК 36.4, К 87
Рекомендовано к изданию учебно-методическим отделом Белорусско-Российского университета. Одобрено кафедрой «Автоматизированные системы управления» «06» февраля 2018 г., протокол № 10.
Составитель: канд. техн. наук, доц. А. В. Шилов. Рецензент: канд. техн. наук, доц. И. В. Лесковец.
Введение
Целью изучения учебной дисциплины «Компьютерная графика» является формирование у обучающихся навыков осваивать новые и применять существующие алгоритмы компьютерной графики, графических приложений, инструментария для написания приложений, стандартов в области разработки графических систем.
Целью данных методических рекомендаций является приобретение обучающимися знаний в областях геометрического моделирования, свойств геометрических моделей, параметризации моделей, геометрических операций над моделями, алгоритмов визуализации: отсечения, развертки, удаления невидимых линий и поверхностей, закраски; способов создания фотореалистических изображений, основных функциональные возможности современных графических систем, организация диалога в графических системах; классификация и обзор современных графических систем.
Задачей компьютерной графики является визуализация кривых и прямых линий и поверхностей, исходя из их математического описания.
1 Формирование цветов
Цель работы: изучение цветовых характеристик и аддитивной цветовой модели RGB. Эта модель используется для описания цветов, которые получаются с помощью устройств, основанных на принципе излучения. В качестве основных цветов выбран красный (Red), зеленый (Green) и синий (Blue).
[IMAGE_1]
Рисунок 1.1 – Основные цвета RGB и их смешение
Цвет описывается формулой: C = r · R + g · G + b · B, где r, g и b – количество соответствующих основных цветов.
[IMAGE_2]
Рисунок 1.2 – Треугольник Максвелла
Цвет, создаваемый смешиванием трех основных компонент, можно представить вектором в трехмерной системе координат R, G и В.
[IMAGE_3]
Рисунок 1.3 – Трехмерные координаты RGB
Для кодирования цвета в формате True Color каждая компонента представлена в виде байта (0…255), что дает 16,7 млн цветов.
| Вопрос | Рейтинг |
|---|---|
| Дать определение термину «Растр» | 1 |
| Геометрические характеристики растра | 1 |
| Оценка разрешающей способности растра | 1 |
| Аддитивная цветовая модель RGB | 1 |
| Формирование треугольника Максвелла | 2 |
| Трехмерные координаты RGB | 1 |
| Соотношение для перекодирования цвета из модели CMY в RGB | 1 |
| Компонентный способ кодирования цветов | 1 |
| Коды изображений True Color | 1 |
| Функция VBA RGB | 1 |
2 Алгоритмы вычерчивания отрезков прямых
Цель работы: изучение алгоритма Брезенхема для вычерчивания отрезков. Алгоритм определяет, какие точки двумерного растра нужно закрасить, чтобы получить близкое приближение прямой линии.
[IMAGE_4]
Рисунок 2.1 – Основная идея алгоритма Брезенхема

Рисунок 2.2 – Изображение отрезка в растре при его построении методом Брезенхема (а) и график ошибки (б)
| Вопрос | Рейтинг |
|---|---|
| Записать рекуррентное соотношение для последовательных значений по методу ЦДА | 1 |
| Алгоритм формирования отрезка методом ЦДА | 1 |
| Представить график ошибки в алгоритме Брезенхема | 1 |
| Как изменяется величина ошибки при закрашивании пиксела по оси Х | 1 |
| Как изменяется величина ошибки при закрашивании пиксела по оси Y | 1 |
| Пояснить схему алгоритма построения отрезка методом Брезенхема | 2 |
3 Формирование цветов с помощью дизеринга
Цель работы: изучение технологии формирования цветов с помощью дизеринга. Если графическое устройство не способно воссоздавать достаточное количество цветов, используют растрирование. Дизеринг позволяет увеличить количество оттенков цветов за счет снижения пространственного разрешения.
Цвет ячейки С можно оценить соотношением: C = (S1*C1 + S2*C2) / S.
| Вопрос | Рейтинг |
|---|---|
| Дать определение термину «Дизеринг» | 1 |
| Сколько градаций серого цвета обеспечивает растр 4 х 4 | 1 |
| Формула для расчета цвета в системе RGB. | 1 |
| Дать определение термину «линеатура» | 1 |
| Дать определение термину «ЧМ-дизеринг» | 1 |
4 Алгоритмы вычерчивания окружностей
Цель работы: изучение алгоритма Брезенхема для вычерчивания окружностей. Необходимо сгенерировать только одну четвертую часть окружности, остальные части получаются отражениями.
[IMAGE_6]
Рисунок 4.1 – Окружность в первом квадранте
[IMAGE_7]
Рисунок 4.2 – Выбор пикселей в первом квадранте
[IMAGE_8]
Рисунок 4.3 – Пересечение окружности и сетки растра
| Вопрос | Рейтинг |
|---|---|
| Записать формулы, для вычисления расстояния между возможными пикселями и окружностью | 1 |
| Привести типы пересечений окружности и сетки растра | 1 |
| Как изменяется величина di при закрашивании пикселя по mh | 1 |
| Как изменяется величина di при закрашивании пикселя по mV | 1 |
| Как изменяется величина di при закрашивании пикселя по mD | 1 |
| Пояснить схему алгоритма формирования окружности | 3 |
5 Алгоритмы заполнение многоугольников методом САР
Цель работы: изучение алгоритма с упорядоченным списком ребер (САР). При сканировании изображения необходимо корректировать САР, включая новые отрезки и исключая те, что закончились.
[IMAGE_9]
Рисунок 5.1 – Сканирующая строка
| Вопрос | Рейтинг |
|---|---|
| Как определяется наименьшей прямоугольник, содержащий внутри себя многоугольник | 1 |
| Дайте определение термину «Активное ребро» | 1 |
| Как определить для каждого активного ребра многоугольника точки пересечений со сканирующими строками | 1 |
| Пояснить схему алгоритма закраски треугольника методом САР | 1 |
| Пояснить схему алгоритма закраски четырехугольника | 1 |
| Дать пояснения операторам, используемым в программе | 1 |
6 Алгоритмы заполнение многоугольников методом заливки
Цель работы: изучение алгоритма заполнения с затравкой. Предполагается, что известен хотя бы один пиксель из внутренней области многоугольника. Используется стек (LIFO).
| Вопрос | Рейтинг |
|---|---|
| Какая область называется гранично-определенной | 1 |
| В чем различие между 8-связной и 4-связной областью | 1 |
| Как определялся затравочный пиксел | 1 |
| Для чего используется стек | 1 |
| Пояснить схему алгоритма закраски | 1 |
7 Аффинные преобразования
Цель работы: изучение алгоритмов параллельного сдвига, растяжения – сжатия и поворота графического объекта.

Рисунок 7.1 – Параллельный сдвиг координат
[IMAGE_11]
Рисунок 7.2 – Растяжение-сжатие осей координат

Рисунок 7.3 – Поворот вокруг центра координат
| Вопросы | Рейтинг |
|---|---|
| Какие преобразования координат называют «аффинными» | 1 |
| Записать линейные преобразования в матричной форме | 1 |
| Привести формулу для вычисления элементов матрицы С=А*В | 1 |
| Привести формулы параллельного сдвига координат точки | 1 |
| Привести формулы растяжение-сжатие координат точки | 1 |
| Привести формулы для поворота координат точки | 1 |
| Перечислить свойства аффинного преобразования | 1 |
| Пояснить схему алгоритма преобразования координат в плоскости | 2 |
8 Метод Робертса
Цель работы: изучение алгоритма удаления невидимых граней методом Робертса. Алгоритм работает в объектном пространстве и удаляет нелицевые грани.
[IMAGE_13]
Рисунок 8.1 – Куб с центром в начале координат
[IMAGE_14]
Рисунок 8.2 – Точка наблюдения вне тела
| Вопрос | Рейтинг |
|---|---|
| Привести уравнение плоскости в трехмерном пространстве в алгебраическом и матричном виде | 1 |
| Привести пример и пояснить создание матрицы выпуклого тела | 1 |
| Как определяется, с какой стороны плоскости находится точка с координатами X0, Y0, Z0 | 1 |
| Привести формулы видового преобразования тела | 1 |
| Пояснить схему алгоритма Робертса | 2 |
| Пояснить схему алгоритма поворота объекта № 3 вокруг оси 0Z | 2 |
9 Метод Z-буфера
Цель работы: изучение алгоритма удаления невидимых граней методом Z-буфера. Z-буфер — это отдельный буфер глубины, используемый для запоминания координаты z каждого видимого пиксела.
[IMAGE_15]
Рисунок 9.1 – Сканирующая строка по грани
| Вопрос | Рейтинг |
|---|---|
| Какая информация содержится в массиве листа «Z-буфер» | 1 |
| Привести формулу для определения глубины z(x, у) | 1 |
| Какая информация содержится в массиве листа «кадр» | 1 |
| Пояснить схему алгоритма для визуализации сцены пересечения объекта № 3 и куба | 2 |
10 Модели отражения света
Цель работы: изучение алгоритма изображения поверхности согласно интенсивности отраженного света.
[IMAGE_16]
Рисунок 10.1 – Падающий свет и нормаль к поверхности

Рисунок 10.2 – Зеркальное отражение
| Вопрос | Рейтинг |
|---|---|
| Перечислите модели освещения | 1 |
| Привести формулу эмпирической модели распределения Фонга для зеркального отражения | 1 |
| Привести формулу закона Ламберта для диффузного отражения | 1 |
| Привести формулу, для учета зеркального и диффузного отражения | 1 |
| Привести формулу, для вычисления нормали к грани в пространстве | 1 |
| Привести формулу, для определения косинуса угла между вектором нормали направлением на источник света | 1 |
| Привести формулу, для определения косинуса угла между отраженным лучом и направлением камеры | 1 |
| Пояснить схему алгоритма для визуализации сцены пересечения объекта № 3 и куба | 2 |
11 Модель отражения света Гуро
Цель работы: изучение алгоритма изображения поверхности согласно интенсивности отраженного света с помощью модели Гуро. Метод основан на интерполяции интенсивности.
[IMAGE_18]
Рисунок 11.1 – Нормали к вершинам

Рисунок 11.2 – Интерполяция интенсивностей
| Вопрос | Рейтинг |
|---|---|
| Перечислите этапы закрашивания грани по методу Гуро | 3 |
| Привести формулу Вектора нормали в вершине по методу Гуро | 1 |
| Привести формулу для интерполирования интенсивности по методу Гуро | 2 |
12 Модель отражения света Фонга
Цель работы: изучение алгоритма изображения поверхности согласно интенсивности отраженного света с помощью модели Фонга. В методе используется интерполяция вектора нормали к поверхности.
| Вопрос | Рейтинг |
|---|---|
| Перечислите этапы закрашивания грани по методу Фонга. | 3 |
| Привести формулу для интерполирования векторов нормалей по методу Фонга. | 2 |
