Основы компьютерной графики


Трехмерные матричные преобразования


Подобно тому, как двумерные преобразования описываются матрицами размером

Трехмерные матричные преобразования
, трехмерные преобразования могут быть представлены матрицами размером
Трехмерные матричные преобразования
. Тогда трехмерная точка
Трехмерные матричные преобразования
 записывается в однородных координатах как
Трехмерные матричные преобразования
, где
Трехмерные матричные преобразования
. Для получения декартовых координат надо первые три однородные координаты разделить на
Трехмерные матричные преобразования
. Два однородных вектора описывают одну декартову точку в трехмерном пространстве, если
Трехмерные матричные преобразования
, где
Трехмерные матричные преобразования
 и
Трехмерные матричные преобразования
 - векторы, записанные в однородных координатах.

Матрицы преобразований будем записывать в правосторонней системе координат. При этом положительный поворот определяется следующим образом. Если смотреть из положительной части оси вращения (например, оси

Трехмерные матричные преобразования
) в направлении начала координат, то поворот на
Трехмерные матричные преобразования
 против часовой стрелки будет переводить одну положительную полуось в другую (ось
Трехмерные матричные преобразования
 в
Трехмерные матричные преобразования
, в соответствии с правилом циклической перестановки).

Заметим, что на практике удобнее применять левостороннюю систему координат, так как в этом случае удобнее интерпретировать тот факт, что точки с большими значениями

Трехмерные матричные преобразования
находятся дальше от наблюдателя.

 Запишем теперь матрицу трехмерного переноса. Аналогично двумерному случаю.

Трехмерные матричные преобразования
, при этом

Трехмерные матричные преобразования
.

Операция масштабирования:

Трехмерные матричные преобразования

Трехмерные матричные преобразования

Перейдем к операции поворота, с ней в трехмерном случае придется разбираться чуть побольше чем в двумерном. Так как при двумерном повороте в плоскости

Трехмерные матричные преобразования
 координаты
Трехмерные матричные преобразования
 остаются неизменными, то поворот вокруг оси
Трехмерные матричные преобразования
 записывается так:

Трехмерные матричные преобразования
.

Матрица поворота вокруг оси

Трехмерные матричные преобразования
имеет вид:

Трехмерные матричные преобразования
,

и вокруг оси

Трехмерные матричные преобразования
:

Трехмерные матричные преобразования

Обратите внимание на смену положения синуса угла с отрицательным знаком в матрице поворота вокруг оси

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

Обратные преобразования будут выражаться обратными матрицами. Для операции переноса надо лишь заменить знаки компонент вектора переноса на противоположные:

Трехмерные матричные преобразования
;

для операции масштабирования – на обратные значения:

Трехмерные матричные преобразования
;

для поворота – выбором отрицательного угла поворота:

Трехмерные матричные преобразования
.


Результатом нескольких последовательных поворотов будет матрица

Трехмерные матричные преобразования
.

Здесь верхняя матрица размером
Трехмерные матричные преобразования
 называется ортогональной. Важным ее свойством является то, что обратная к ней матрица является транспонированной:
Трехмерные матричные преобразования
. Это полезно тем, что при вычислениях достаточно поменять индексы местами и обратное преобразование получается автоматически.

После перемножения любого числа матриц вида
Трехмерные матричные преобразования
 и
Трехмерные матричные преобразования
 результирующая матрица всегда будет иметь вид:

Трехмерные матричные преобразования
.

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


Содержание раздела