30.5 Vector Rotation Matrices
Also included in Octave’s geometry functions are primitive functions to enable vector rotations in 3-dimensional space. Separate functions are provided for rotation about each of the principle axes, x, y, and z. According to Euler’s rotation theorem, any arbitrary rotation, R, of any vector, p, can be expressed as a product of the three principle rotations:
p' = Rp = Rz*Ry*Rx*p
- : T = rotx (angle)
-
rotx
returns the 3x3 transformation matrix corresponding to an active rotation of the vector about the x-axis by the specified angle, given in degrees, where a positive angle corresponds to a counterclockwise rotation when viewing the y-z plane from the positive x side.The form of the transformation matrix is:
| 1 0 0 | T = | 0 cos(angle) -sin(angle) | | 0 sin(angle) cos(angle) |
This rotation matrix is intended to be used as a left-multiplying matrix when acting on a column vector, using the notation v = Tu. For example, a vector, u, pointing along the positive y-axis, rotated 90-degrees about the x-axis, will result in a vector pointing along the positive z-axis:
>> 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
returns the 3x3 transformation matrix corresponding to an active rotation of a vector about the y-axis by the specified angle, given in degrees, where a positive angle corresponds to a counterclockwise rotation when viewing the z-x plane from the positive y side.The form of the transformation matrix is:
| cos(angle) 0 sin(angle) | T = | 0 1 0 | | -sin(angle) 0 cos(angle) |
This rotation matrix is intended to be used as a left-multiplying matrix when acting on a column vector, using the notation v = Tu. For example, a vector, u, pointing along the positive z-axis, rotated 90-degrees about the y-axis, will result in a vector pointing along the positive x-axis:
>> 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
returns the 3x3 transformation matrix corresponding to an active rotation of a vector about the z-axis by the specified angle, given in degrees, where a positive angle corresponds to a counterclockwise rotation when viewing the x-y plane from the positive z side.The form of the transformation matrix is:
| cos(angle) -sin(angle) 0 | T = | sin(angle) cos(angle) 0 | | 0 0 1 |
This rotation matrix is intended to be used as a left-multiplying matrix when acting on a column vector, using the notation v = Tu. For example, a vector, u, pointing along the positive x-axis, rotated 90-degrees about the z-axis, will result in a vector pointing along the positive y-axis:
>> 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–2020 John W. Eaton
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://octave.org/doc/v6.3.0/Vector-Rotation-Matrices.html