- •153000 Г. Иваново, пр. Ф.Энгельса, 21
- •Лекция №1 Предмет и область применения компьютерной графики
- •1. Отображение информации
- •2. Проектирование
- •3. Моделирование
- •4. Графический пользовательский интерфейс
- •Краткая история
- •Технические средства поддержки компьютерной графики
- •Вопросы и упражнения
- •Лекция №2 о природе света и цвета
- •Цветовой график мко
- •Цветовые модели rgb и cmy
- •Цветовые модели hsv и hls
- •Пространство cie Luv
- •Вопросы и упражнения
- •Лекция №3 Геометрические преобразования Системы координат и векторы
- •Уравнения прямой и плоскости
- •Аналитическое представление кривых и поверхностей
- •Пересечение луча с плоскостью и сферой
- •Лекция №3 (продолжение) Интерполяция функций одной и двух переменных
- •Матрицы
- •Геометрические преобразования (перенос, масштабирование, вращение)
- •Переход в другую систему координат
- •Задача вращения относительно произвольной оси
- •Вопросы и упражнения
- •Лекция №4 Введение в растеризацию кривых
- •Изображение отрезка с целочисленными координатами концов
- •Цифровой дифференциальный анализатор
- •Алгоритм Брезенхема
- •Алгоритм Кастла-Питвея
- •Изображение отрезка с нецелочисленными координатами концов
- •Изображение окружностей
- •Алгоритм Брезенхема
- •Изображение эллипсов
- •Построение по неявной функции
- •Построение путем сжатия окружности
- •Лекция №5 Представление геометрической информации Геометрические примитивы
- •Полигональные модели
- •Воксельные модели
- •Поверхности свободных форм (функциональные модели)
- •Системы координат: мировая, объектная, наблюдателя и экранная
- •Однородные координаты. Задание геометрических преобразований в однородных координатах с помощью матриц
- •Вопросы и упражнения
- •Лекция №6 Отсечение (клиппирование) геометрических примитивов
- •Алгоритм Сазерленда-Коэна отсечения прямоугольной областью
- •Отсечение выпуклым многоугольником
- •Клиппирование многоугольников
- •Вопросы и упражнения
- •Лекция №7 Удаление невидимых поверхностей и линий
- •Удаление нелицевых граней многогранника Алгоритм Робертса
- •Алгоритм Варнока
- •Алгоритм Вейлера-Азертона
- •Метод z-буфера
- •Методы приоритетов (художника, плавающего горизонта)
- •Алгоритмы построчного сканирования для криволинейных поверхностей
- •Метод двоичного разбиения пространства
- •Метод трассировки лучей
- •Вопросы и упражнения
- •Лекция №8 Проецирование пространственных сцен Основные типы проекций
- •Параллельные проекции
- •Центральные проекции
- •Математический аппарат
- •Ортогональные проекции
- •Косоугольные проекции
- •Центральные проекции
- •Специальные картографические проекции. Экзотические проекции земной сферы
- •Стереографическая проекция
- •Гномоническая проекция
- •Ортографическая проекция
- •Проекции на цилиндр
- •Проекция Меркатора
- •Проекции на многогранник
- •Необычные проекции
- •Вопросы и упражнения
- •Лекция 9 Растровое преобразование графических примитивов
- •Алгоритм Брезенхема растровой дискретизации отрезка
- •Алгоритмы Брезенхема растровой дискретизации окружности и эллипса
- •Алгоритмы заполнения областей
- •Вопросы и упражнения
- •Лекция 10 Закрашивание. Рендеринг полигональных моделей
- •Простая модель освещения
- •Закраска граней Плоское закрашивание
- •Закраска методом Гуро
- •Закраска методом Фонга
- •Более сложные модели освещения
- •Устранение ступенчатости (антиэлайзинг)
- •Вопросы и упражнения
- •Лекция 11 Визуализация пространственных реалистических сцен Свето-теневой анализ
- •Метод излучательности
- •Глобальная модель освещения с трассировкой лучей
- •Текстуры
- •Вопросы и упражнения
- •Учебники к курсу
- •Список литературы
Вопросы и упражнения
-
Дайте определение декартовой системы координат.
-
Что такое вектор?
-
Какие векторы считаются равными?
-
Какие векторы называются линейно независимыми?
-
Как выразить длину вектора, используя операцию скалярного произведения?
-
Как определить косинус угла между векторами, используя операцию скалярного произведения?
-
Докажите, что векторное произведение удовлетворяет соотношению
-
Как из произвольного вектора получить единичный вектор, совпадающий с ним по направлению? (Эта операция называется нормировкой вектора).
-
Каково максимальное число линейно независимых векторов в пространстве?
-
Что такое орты?
-
Как построить параметрическое уравнение прямой, проходящей через две заданные точки плоскости или пространства?
-
Докажите, что если в формуле (3.7) заменить координаты координатами любой другой точки плоскости, то уравнение будет описывать ту же самую плоскость. Указание: возьмите произвольную точку, удовлетворяющую уравнению (3.7), напишите новое уравнение плоскости и покажите, что любая точка второй плоскости принадлежит первой и наоборот.
-
В каких случаях луч с плоскостью не пересекаются?
-
В каких случаях луч пересекает сферу только в одной точке?
-
Исходя из определения умножения матрицы на вектор, докажите, что для любых двух векторов и любой матрицы справедливо соотношение
-
Докажите, что для любого вектора , числа и матрицы справедливо соотношение
-
При каком условии масштабирование сохраняет углы между отрезками?
-
Какую траекторию описывают точки объекта при повороте?
-
Вокруг чего осуществляется поворот на плоскости?
-
Вокруг чего осуществляется поворот в пространстве?
-
Какие шаги выполняются в алгоритме поворота относительно произвольной оси в пространстве?
-
Докажите, что если матрица является матрицей поворота, то .
Лекция №4 Введение в растеризацию кривых
Пусть у нас есть некоторая кривая, и мы хотим построить ее изображение на растровой решетке. Возникает вопрос: какие из ближайших пикселей следует закрашивать? В данной и следующей лекциях мы рассмотрим случай построения на монохромном растре, когда возможны только два уровня интенсивности закраски пикселя - "полностью закрашен" или "полностью не закрашен". Если же допустимы несколько уровней интенсивности, то можно растеризовывать более аккуратно, уменьшая эффекты алиасинга (т.е. ступенчатости).
Рис. 4.1. Изображение кривых на растре
Пусть (x0, y0) - фиксированный пиксель, а (x, y) - некоторый другой пиксель на плоскости. Тогда для определения их близости вводятся следующие понятия:
1. 4-связность |x-x0|+|y-y0|=1 |
|
2. 8-связность max{|x-x0|+|y-y0|}=1 |
|
В дальнейших рассуждениях расстояние будем считать заданным стандартной евклидовой метрикой.
Изображение отрезка с целочисленными координатами концов
Пусть наш отрезок - это AB. Перейдем от системы координат Oxy к Ax'y'. Отрезок может лежать в любом из 8 октантов, но всегда существуют симметрии относительно осей, разделяющих эти октанты, симметрии определяются матрицами
и
позволяющие свести задачу к случаю отрезка, лежащего в первом октанте (пример см. на рис. 4.2, этап 2, в нем матрица имеет вид
Назовем такой случай каноническим, в дальнейшем будут рассмотрены алгоритмы для этого случая. В каноническом случае процесс рисования 8-связной линии можно закодировать последовательностью вида: sdssd... (см. рис. 4.3), где
-
s - горизонтальное смещение;
-
d - диагональное смещение.
Рис. 4.2. Переход к каноническому случаю в два этапа
Эквивалентно этой последовательности можно сопоставить бинарный код, где 0 соответствует s, а 1 соответствует d. Такой код для рисования отрезка называется кодом Ротштейна [46] для .Пусть plot(x,y) - функция, закрашивающая точку растра с координатами (x,y).
Рис. 4.3. Кодирование закрашивания отрезка (или код Ротштейна).