Основы компьютерной графики/§3
Внешний вид
Базовый уровень статей | |
3D преобразования
[править]Тут все почти так же как и в 2D преобразованиях, тока с добавлением еще одного измерения (еще одной оси координат) будем проводить аналогию:
Смотрим матрицу преобразования имеет такой вид : не стоит пугаться такого обилия буковок, тут все так же как и двухмерных преобразованиях а именно:
1) Линейное преобразование. За него отвечают (a,b,c,d,e,f,g,i,j)
- Поворот
- Сдвиг
- Масштабирование
- Отражение
2) Афильные (Евклидовы) преобразования. За них отвечают (l,n,m) соответственно раз 3 координаты (x,y,z) то и у нас 3 элемента матрицы отвечают за это.
- Перемещение
3) Проективные (начертательные) преобразования
посмотрим несколько примеров:
- масштабирование по осям. по оси X в 2 раза, по оси Y в 3 раза, Z - не изменяется.
- Для отражения от плоскости OYX : (x y z 1) → (x y -z 1) (т.е. в матрице преобразования поменять знак у элемента j), для такого же отражения по OXZ : (x y z 1) → (x -y z 1) (элемент с). Возьмём более сложный случай "Вывернуть наизнанку" т.е. отразить по всем 3ем осям - это делается :
- Повороты : вокруг оси X и вокруг оси Y → Для поворота вокруг произвольной прямой нужно выполнить: , где R матрица поворота для той оси, на который вы перенесёте.
- Сдвиг - все не диагональные элементы b,c,d,f,g,i
- Перемещение - l,m,n,
- Проекция - это афильное преобразование в нем участвуют все элементы кроме p,q,r,s т.е. Например, если нам нужно спроецировать на плоскость Z=0 то матрица преобразования будет выглядеть следующим образом