- •Лекция 1. Введение в компьютерную графику
- •История технологий вывода
- •Направления компьютерной графики
- •Изобразительная компьютерная графика
- •Обработка и анализ изображений
- •Анализ сцен
- •Когнитивная компьютерная графика
- •Приложения компьютерной графики
- •Лекция 2. Аппаратное обеспечение компьютерной графики
- •Устройства отображения информации
- •Векторные дисплеи
- •Растровые дисплеи
- •Основные характеристики монитора
- •Устройства ввода графической информации Световое перо
- •Манипулятор «мышь»
- •Трекбол
- •Дигитайзер
- •Устройства трехмерного сканирования
- •Устройства вывода графической информации Принтеры
- •История развития видеоадаптеров для совместимых компьютеров
- •Типы графических форматов
- •Растровые форматы
- •Векторные форматы
- •Метафайловые форматы
- •Методы сжатия, используемые в растровых форматах Лекция 3. Математические основы компьютерной графики. Преобразования в двухмерном пространстве
- •П реобразование точек
- •Преобразование прямых линий
- •Двумерное смещение и однородные координаты.
- •Однородные координаты. Операции в них
- •Операция cмещения
- •Вращение
- •Лекция 4. Преобразования в 3d пространстве. Виды проецирования
- •Смещение
- •Виды проецирования
- •Двухточечное проецирование по p, q
- •Стереографическая и специальные перспективные проекции
- •Проекция на плоскость
- •Проекция на сферу (рыбий глаз)
- •Проекция на цилиндрическую поверхность
- •Лекция 5. Растровая графика. Представление графических примитивов. Алгоритмы вычерчивания отрезков. Растровые алгоритмы
- •Вывод на экран произвольной точки
- •Растровое представление отрезка
- •Растровое представление отрезка. Алгоритм Брезенхейма
- •Простой метод устранения лестничного эффекта
- •Модифицированный алгоритм Брезенхейма с устранением ступенчатости для первого квадранта
- •Отсечение отрезка. Алгоритм Сазерленда-Кохена
- •Лекция 6. Растровая развертка сплошных областей. Алгоритмы заполнения контуров. Алгоритмы закраски многоугольников. Растровая развертка сплошных областей
- •Заполнение многоугольников
- •Растровая развертка многоугольников
- •Простой алгоритм с упорядоченным списком ребер
- •Простой алгоритм с упорядоченным списком ребер
- •Более эффективные алгоритмы с упорядоченными списком ребер
- •Лекция 7. Основы 3d графики Задание объектов и сцен
- •П ерспективное проецирование
- •Работа с произвольной камерой
- •Моделирование текстуры
- •Лекция 8. Алгоритмы удаления невидимых линий и поверхностей о тсечение нелицевых граней
- •Алгоритм художника
- •Метод z-буфера
- •Порталы
- •Алгоритм Сазерленда-Ходжмана
- •Алгоритмы упорядочения
- •Метод двоичного разбиения пространства
- •Метод построчного сканирования
- •Лекция 9. Расчет освещения м одель освещения
- •Расчет нормали к объекту
- •Освещение по Ламберту
- •Освещение по Гуро
- •Освещение по Фонгу
- •Лекция 10. Построение изображений методом трассировки лучей Основы метода трассировки лучей
- •Методы оптимизации
- •Литература
Преобразование прямых линий
Линия задана 2 векторами
Векторы положения точек А и В равны [0 1] и [2 3]
Матрица преобразования
T = [1 2] (3.8)
[3 1]
Получим:
AT = [0 1] [1 2] = [3 1] = A* (3.9)
[3 1]
BT = [2 3] [1 2] = [11 7] = B* (3.10)
[3 1]
Альтернативное представление линии AB
L = [0 1]
[2 3]
После этого умножение матрицы L на Т даст
LT = [0 1] [1 2] = [3 1] = L* (3.11)
[2 3] [3 1] = [11 7]
Операция сдвига увеличила длину линии и изменила ее положение.
Вращение.
Рассмотрим плоский треугольник ABC с координатами ((3, -1), (4, 1), (2, 1)).
Осуществим поворот на 90° против часовой стрелки
Получим
[3 -1] [ 0 1] [ 1 3] (3.12)
[4 1] [-1 0] = [-1 4]
[2 1] [-1 2]
В результате получим треугольник А*В*С*. Поворот на 180° осуществляется с помощью матрицы
[-1 0]
[ 0 -1]
поворот на 270 вокруг начала координат - с помощью матрицы
[0 -1]
[1 0]
Отображение.
Отображение определяется поворотом на 180° вокруг оси, лежащей в плоскости ху.
1) Вращение около линии у=x происходит при использовании матрицы
[0 1]
[1 0]
Новые выражения определяются соотношением
[8 1] [0 1] [1 8] (3.13)
[7 3] [1 0] = [3 7]
[6 2] [2 6]
2) Вращение вокруг у = 0 получается при использовании матрицы
[1 0]
[0 -1]
Новые вершины определяются соотношением:
[8 1] [1 0] [8 -1]
[7 3] [0 -1] = [7 3]
[6 2] [6 2]
Изменение масштаба.
Изменение масштаба определяется значением 2-х членов основной диагонали матрицы
Если используем матрицу: Увеличение в 2 раза
[2 0]
[0 2]
Если значения членов не равны, то имеет место искажение
Треугольник АВС преобразован с помощью матрицы
[2 0]
[0 2]
Треугольник DEF преобразован с помощью матрицы
[3 0]
[0 2] Искажение
Двумерное смещение и однородные координаты.
Введем третью компоненту в векторы точек [x y] и [x* y*] - [x y 1] и [x* y* 1 ].
Матрица преобразования выглядит след. образом:
[1 0]
[0 1]
[m n]
Таким образом,
[1 0]
[x y 1][0 1] = [x + m, y + n] = [x* y*] (3.14)
[m n]
Константы m, n вызывают смещение x* и у* относительно x и у, матрица 3х2 не квадратная - она не имеет обратной матрицы.
Дополним матрицу преобразования до квадратной
[1 0 0]
[0 1 0] (3.15)
[m n 1]
Третья компонента не изменяется.
Однородные координаты. Операции в них
Любая система координат, в которой представление точки в двухмерном (трехмерном) пространстве дается при помощи трех (четырех) координат (Р1 Р2Р3Р4), называется системой однородных координат. Для n-мерного пространства число однородных координат должно быть n+1. Теперь сложные преобразования можно представить, используя произведения матриц. Применение однородных координат в общем случае дает возможность избегать аномалий, возникающих при работе с декартовыми координатами.
Операция cмещения
|
|
В представление точки введена дополнительная координата, в результате третья компонента не изменилась . Константа переноса не зависит от системы координат от х или у.
В случае выхода рисунка за сечение н=1 рисунок возвращается принудительно в данное сечение, чтобы были возможны следующие операции:
- нормализация однородных координат.
|
|
Общий вид преобразования
Операция масштабирования
|
|
Общее полное масштабирование
s<1 увеличение; s>1 уменьшение.