
- •Лекция 1 Введение
- •Двумерные геометрические (аффинные) преобразования
- •Представление точек и общая схема преобразования с использованием матриц
- •Преобразование масштабирования
- •Преобразование поворота
- •Преобразование переноса и однородные координаты
- •Выполнение произвольных преобразований на плоскости. Композиция преобразований
- •Выводы по плоским геометрическим преобразованиям
- •Трехмерные преобразования
- •Преобразования поворота в пространстве
- •Коммутативность преобразований Преобразования как изменение координатных систем
- •Координатные системы двух мерного геометрического конвейера и их преобразование
- •Синтаксис команд OpenGl
- •Настройка библиотеки
- •Задание аффинных преобразований
- •Координатные системы
- •Задание векторных примитивов
- •Проекции
- •Параллельные проекции
- •Центральные проекции
- •Реализация проективных преобразований
- •Ортографические проекции
- •Ортографическая проекция
- •Перспективная проекция
- •Ориентация в пространстве
- •1 Простая модель освещения
- •1.1 Диффузное отражение
- •1.2 Зеркальное отражение
- •1.3 Общая модель
- •2 Источники света в OpenGl
- •2.1 Модель освещения
- •2.3 Грани
- •2.2 Свойства материала
- •Плоское закрашивание
- •Закрашивание методом Гуро
- •Закраска Фонга
- •3 Цвет в машинной графике
- •3.1 Цветовая модель hsv
- •Удаление невидимых линий и поверхностей.
- •Алгоритм плавающего горизонта
- •Ньюэл м., Ньюэл р.И Санча
- •Алгоритм Ньюэла-Нюэла-Санча
- •Алгоритм использующий z-буфер
- •Алгоритм определения видимых поверхностей путем трассировки лучей
Выводы по плоским геометрическим преобразованиям
Подводя итог изучению двумерных преобразований, еще раз обратим внимание на структуру матрицы преобразования.
М =
Элементы a,b,c и d определяют коэффициенты поворота, масштабирования и сдвига. Элементы е и f служат для формирования переноса. Смысл трех оставшихся элементов необходимо прояснить. Начнем с k и m. Обычно, мы устанавливали им нулевое значение. Теперь положим их отличными от нуля, элементы главной диагонали приравняем к единице, а остальные элементы обнулим. Применим получившееся преобразование к произвольной точке заданной в однородных координатах с w =1.
[x’ y’
w’] = [x y 1]
=
[x y kx+my+1]
x’ = x, y’=y
Для того, чтобы понять результат, обратимся к геометрической интерпретации однородных координат. Точка в однородных координатах определяется тройкой, следовательно, мы имеем дело с трехмерной координатной системой, определенной в пространстве. Две оси системы нам привычны это X и Y, а третья – W, ось масштабных коэффициентов. Зафиксировав значение W, установив его равным единице, мы перешли от пространства к плоскости параллельной плоскости XOY. Установив элементы k и m отличными от нуля, мы сняли данное ограничение и полученная в результате преобразования точка расположена в пространстве. При этом ее третья координата определяется по формуле kx+my+1 т.е. зависит от значений x и у. Следовательно, точки, подвергшиеся данному преобразованию, будут лежать в некоторой плоскости не параллельной плоскости XOY. Вернем точку на плоскость W=1 путем проецирования лучами, проходящими через начало координат. Из подобия треугольников x’’= x’/w’= x/( kx+my+1) и аналогично y’’= y’/w’= y/( kx+my+1). Таким образом, математически подобное проецирование выразится в простой нормализации.
[x’’
y’’
1] =
Для выяснения смысла элемента s матрицы преобразования, проведем рассуждения по аналогичной схеме. Умножим произвольную точку на соответствующую матрицу с ненулевым значением s.
[x
y
1]
=
[x
y
s]
Все точки, подвергшиеся такому преобразованию будут лежать в плоскости W=s которая параллельна плоскости W=1. Нормализация будет приводить к простому масштабированию с одинаковыми коэффициентами по осям.
[x’
y’
1] =
Основное отличие такого масштабирования от рассмотренного ранее состоит в том, что при s<1 будет происходить растяжение, а при s>1 – сжатие.
Трехмерные преобразования
При переходе в пространство добавляется координата Z и, следовательно, размерность матриц увеличивается на единицу. Точки в пространстве представляются четверками [x y z 1], размерность матриц преобразований становится 4*4.
В главную диагональ матрицы масштабирования добавляется масштабирующий коэффициент по оси Z, а в матрицу переноса добавляется проекция вектора переноса на ось Z.
Отображение в
пространстве производится относительно
плоскостей. Так при отображении
относительно плоскости XOY
поменяют знаки только координаты Z.
Матрица такого преобразования будет
выглядеть следующим образом. М =
.
Аналогично для других плоскостей.
С поворотами ситуация более сложная.