30.5 Матрицы вращения векторов
В набор геометрических функций Octave также входят примитивные функции для выполнения вращений векторов в трёхмерном пространстве. Предусмотрены отдельные функции для вращения вокруг каждой из главных осей: x, y и z. Согласно теореме Эйлера о вращении, любое произвольное вращение R любого вектора p можно представить как произведение трёх вращений вокруг главных осей:
p' = Rp = Rz*Ry*Rx*p
-
:
T =rotx(angle) -
rotxвозвращает матрицу преобразования 3x3, соответствующую активному вращению вектора вокруг оси x на заданный угол angle в градусах, при этом положительный угол соответствует вращению против часовой стрелки при наблюдении плоскости y-z со стороны положительного направления оси x.Матрица преобразования имеет следующий вид:
| 1 0 0 | T = | 0 cos(angle) -sin(angle) | | 0 sin(angle) cos(angle) |Эта матрица вращения предназначена для использования в качестве матрицы, умножаемой слева при преобразовании вектора-столбца, в обозначениях
v = T*u. Например, если вектор u, направленный вдоль положительной оси y, повернуть на 90 градусов вокруг оси x, получится вектор, направленный вдоль положительной оси z:>> u = [0 1 0]' u = 0 1 0 >> T = rotx (90) T = 1.00000 0.00000 0.00000 0.00000 0.00000 -1.00000 0.00000 1.00000 0.00000 >> v = T*u v = 0.00000 0.00000 1.00000
-
:
T =roty(angle) -
rotyвозвращает матрицу преобразования 3x3, соответствующую активному вращению вектора вокруг оси y на заданный угол angle в градусах, при этом положительный угол соответствует вращению против часовой стрелки при наблюдении плоскости z-x со стороны положительного направления оси y.Матрица преобразования имеет следующий вид:
| cos(angle) 0 sin(angle) | T = | 0 1 0 | | -sin(angle) 0 cos(angle) |Эта матрица вращения предназначена для использования в качестве матрицы, умножаемой слева при преобразовании вектора-столбца, в обозначениях
v = T*u. Например, если вектор u, направленный вдоль положительной оси z, повернуть на 90 градусов вокруг оси y, получится вектор, направленный вдоль положительной оси x:>> u = [0 0 1]' u = 0 0 1 >> T = roty (90) T = 0.00000 0.00000 1.00000 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 >> v = T*u v = 1.00000 0.00000 0.00000
-
:
T =rotz(angle) -
rotzвозвращает матрицу преобразования 3x3, соответствующую активному вращению вектора вокруг оси z на заданный угол angle в градусах, при этом положительный угол соответствует вращению против часовой стрелки при наблюдении плоскости x-y со стороны положительного направления оси z.Матрица преобразования имеет следующий вид:
| cos(angle) -sin(angle) 0 | T = | sin(angle) cos(angle) 0 | | 0 0 1 |Эта матрица вращения предназначена для использования в качестве матрицы, умножаемой слева при преобразовании вектора-столбца, в обозначениях
v = T*u. Например, если вектор u, направленный вдоль положительной оси x, повернуть на 90 градусов вокруг оси z, получится вектор, направленный вдоль положительной оси y:>> u = [1 0 0]' u = 1 0 0 >> T = rotz (90) T = 0.00000 -1.00000 0.00000 1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 >> v = T*u v = 0.00000 1.00000 0.00000
© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Vector-Rotation-Matrices.html