Расширенная матрица в трёхмерном пространстве MbMatrix3D
Класс MbMatrix3D объявлен в файле mb_matrix3d.h.
В трёхмерном пространстве матрица MbMatrix3D описывает преобразование из одной системы координат в другую. Матрица имеет размерность четыре на четыре. Пусть в выбранной системе координат построена локальная аффинная система координат с началом в точке r с координатами r1, r2, r3 и базисными векторами a = [a1 a2 a3], b = [b1 b2 b3], c = [c1 c2 c3]. Векторы a, b, c должны быть линейно независимыми, но могут быть не ортогональными друг другу и иметь произвольную длину. Матрица MbMatrix3D преобразования координат из локальной системы в выбранную систему координат имеет вид:
Для обозначения расширенных матриц в трёхмерном пространстве будем использовать прописные буквы латинского алфавита, выделенные полужирным шрифтом, например M. Заметим, что каждому базисному вектору a, b, c и начальной точке r локальной системы координат соответствует своя строка в матрице преобразования из локальной системы в выбранную систему координат.
Матрица MbMatrix3D является расширенной и работает с однородными радиусами-векторами и однородными векторами MbHomogeneous3D в трёхмерном пространстве.
При преобразовании радиуса-вектора MbCartPoint3D по матрице MbMatrix3D точке следует добавить четвёртую координату, равную единице. Пусть точка с координатами x1, x2, x3 в локальной системе координат имеет координаты p1, p2, p3 в выбранной системе координат, тогда при участии расширенной матрицы MbMatrix3D координаты будут связаны соотношением
Заметим, что трёхмерный радиус-вектор умножается на расширенную матрицу MbMatrix3D справа.
При преобразовании вектора MbVector3D по матрице MbMatrix3D вектору следует добавить четвёртую компоненту, равную нулю. Пусть вектор с компонентами y1, y2, y3 в локальной системе координат имеет компоненты v1, v2, v3 в выбранной системе координат, тогда при участии расширенной матрицы MbMatrix3D компоненты будут связаны соотношением
Заметим, что трёхмерный вектор умножается на расширенную матрицу MbMatrix3D справа.