Назад | Оглавление | Домой | Далее

3.2.      Трехмерные преобразования и проекции

 

Рассмотрим трехмерную декартовую систему координат, являющуюся правосторонней. Примем соглашение, в соответствии с которым будем считать положительными такие повороты, при которых (если смотреть с конца полуоси  в направлении начала координат) поворот на 90° против часовой стрелки будет переводить одну полуось в другую. На основе этого соглашения строится следующая таблица, которую можно использовать как для правых, так и для левых систем координат:

 

 

Если ось вращения

Положительным будет направление поворота

X

От  y  к  z

Y

От  z  к  x

Z

От  x  к  y

 

 

Рис. 3.6. Трехмерная система координат

 

Аналогично тому, как точка на плоскости описывается вектором (x,y), точка в трехмерном пространстве описывается вектором (x,y,z).

Как и в двухмерном случае, для возможности реализаций трехмерных преобразований  с помощью матриц перейдем к однородным координатам:

 

 

[x,y,x,1] или [X,Y,Z,H]

 

[x*,y*,z*1] = [], где Н¹1, Н ¹0.

 

Обобщенная матрица преобразования 4´4 для трехмерных однородных координат имеет вид

 

Т =

Эта матрица может быть представлена в виде четырех отдельных частей:

 

.

 

·     Матрица 3´3 осуществляет линейное[1] преобразование в виде изменения масштаба, сдвига и вращения.

·     Матрица 1´3 производит перенос.

·     Матрица 3´1- преобразования в перспективе.

·     Скалярный элемент 1´1 выполняет общее изменение масштаба.

Рассмотрим воздействие матрицы 4´4 на однородный вектор [x,y,z,1]:

 

1. Трехмерный перенос – является простым расширением двумерного:

 

 T(Dx,Dy,Dz)=

 

т. е. [x,y,z,1]*T(Dx,Dy,Dz)=[x+Dx,y+Dy,z+Dz,1].

 

2. Трехмерное изменение масштаба.

Рассмотрим частичное изменение масштаба. Оно реализуется следующим образом:

 

 S(Sx,Sy,Sz)=

 

т. е. [x,y,z,1]*S(Sx,Sy,Sz)=[Sx*x,Sy*y,Sz*z,1].

 

Общее изменение масштаба получается за счет 4-го диагонального элемента, т. е.

 

 [x y z 1] * = [x y z S] = [x* y* z*  1] = [].

 

Такой же результат можно получить при равных коэффициентах частичных изменений масштабов. В этом случае матрица преобразования такова:

 

 S=

 

3. Трехмерный сдвиг

Недиагональные элементы матрицы 3´3 осуществляют сдвиг в трех измерениях, т. е.

 

 [x y z 1] * =[x+yd+hz, bx+y+iz, cx+fy+z, 1].

 

4. Трехмерное вращение

Двухмерный поворот, рассмотренный ранее, является  в то же время трехмерным поворотом вокруг оси Z . В трехмерном пространстве поворот вокруг оси Z описывается матрицей

 

 Rz()=

 

Матрица поворота вокруг оси X имеет вид

 

 Rx()=

 

Матрица поворота вокруг оси Y имеет вид

   

 Ry()=

 

Результатом произвольной последовательности поворотов вокруг осей x, y, z  является матрица

 

 A=

 

Подматрицу 3´3 называют ортогональной, так как ее столбцы являются взаимно ортогональными единичными векторами.

Матрицы поворота сохраняют длину и углы, а матрицы масштабирования и сдвига нет.

 

[1] Линейное преобразование трансформирует исходную линейную комбинацию векторов  в некоторую линейную их комбинацию.

Назад | Оглавление | Домой | Далее