Трехмерные матричные преобразования
Подобно тому, как двумерные преобразования описываются матрицами размером
, трехмерные преобразования могут быть представлены матрицами размером . Тогда трехмерная точка записывается в однородных координатах как , где . Для получения декартовых координат надо первые три однородные координаты разделить на . Два однородных вектора описывают одну декартову точку в трехмерном пространстве, если , где и - векторы, записанные в однородных координатах.Матрицы преобразований будем записывать в правосторонней системе координат. При этом положительный поворот определяется следующим образом. Если смотреть из положительной части оси вращения (например, оси
) в направлении начала координат, то поворот на против часовой стрелки будет переводить одну положительную полуось в другую (ось в , в соответствии с правилом циклической перестановки).Заметим, что на практике удобнее применять левостороннюю систему координат, так как в этом случае удобнее интерпретировать тот факт, что точки с большими значениями
находятся дальше от наблюдателя.Запишем теперь матрицу трехмерного переноса. Аналогично двумерному случаю.
, при этом .Операция масштабирования:
Перейдем к операции поворота, с ней в трехмерном случае придется разбираться чуть побольше чем в двумерном. Так как при двумерном повороте в плоскости
координаты остаются неизменными, то поворот вокруг оси записывается так: .Матрица поворота вокруг оси
имеет вид: ,и вокруг оси
:Обратите внимание на смену положения синуса угла с отрицательным знаком в матрице поворота вокруг оси
. Правильность этих матриц легко проверить поворотом одного из ортов на , при этом он должен перейти в следующий по порядку орт на соответствующей координатной оси.Обратные преобразования будут выражаться обратными матрицами. Для операции переноса надо лишь заменить знаки компонент вектора переноса на противоположные:
;для операции масштабирования – на обратные значения:
;для поворота – выбором отрицательного угла поворота:
.Результатом нескольких последовательных поворотов будет матрица
.
Здесь верхняя матрица размером называется ортогональной. Важным ее свойством является то, что обратная к ней матрица является транспонированной: . Это полезно тем, что при вычислениях достаточно поменять индексы местами и обратное преобразование получается автоматически.
После перемножения любого числа матриц вида и результирующая матрица всегда будет иметь вид:
.
Здесь верхняя часть размером определяет суммарный поворот и масштабирование, а три коэффициента последней строки – суммарный перенос.