Я знаю, что это СТАРЫЙ поток, но посчитал необходимым указать на это кому-то еще, кто наткнулся на этот вопрос.
В линейной алгебре нас учат рассматривать матрицу как совокупность базовых векторов, каждый из которых представляет направление в пространстве, доступное для описания относительной позиции от начала координат.
Базисные векторы любой матрицы (векторы, которые описывают основные направления) могут быть непосредственно считаны из соответствующего столбца матрицы.
Проще говоря, ваш первый столбец - это ваш вектор "x ++", второй - вектор "y ++", третий - вектор "z ++". Если вы работаете с матрицами 4x4 в 3d, последние элементы этих столбцов и последний столбец относятся к переводу происхождения. В этом случае последний элемент каждого из этих векторов и последний столбец любой такой матрицы могут быть проигнорированы ради простоты.
Пример. Рассмотрим матрицу, представляющую поворот на 90 градусов вокруг оси y.
[0, 0, -1]
[0, 1, 0]
[1, 0, 0]
Вектор вверх может быть просто извлечен из третьего столбца как (-1, 0, 0), потому что матрица применяет поворот на 90 градусов вокруг оси y, теперь вектор вверх указывает вниз по оси x (как вектор говорит), Вы можете приобрести базисные векторы, чтобы получить положительные кардинальные направления, и отрицание их даст вам их противоположные аналоги.
Если у вас есть матрица, из которой можно извлечь направления, нетривиальных вычислений не требуется.