Accelerating the pace of engineering and science

rotx

Rotation matrix for rotations around x-axis

Description

example

R = rotx(ang) creates a 3-by-3 matrix used to rotated a 3-by-1 vector or 3-by-N matrix of vectors around the x-axis by ang degrees. When acting on a matrix, each column of the matrix represents a different vector. For the rotation matrix R and vector v, the rotated vector is given by R*v.

Examples

expand all

Rotation matrix for 30° rotation

Construct the matrix for a rotation of a vector around the x-axis by 30°. Then let the matrix operate on a vector:

`R = rotx(30)`
```R =

1            0            0
0      0.86603         -0.5
0          0.5      0.86603```
```x = [2;-2;4];
y = R*x```
```y =

2
-3.7321
2.4641```

Under a rotation around the x-axis, the x-component of a vector is left unchanged.

Input Arguments

expand all

ang — Rotation anglereal-valued scalar

Rotation angle specified as a real-valued scalar. The rotation angle is positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the x-axis towards the origin. Angle units are in degrees.

Example: 30.0

Data Types: double

Output Arguments

expand all

R — Rotation matrixreal-valued orthogonal matrix

3-by-3 rotation matrix returned as

${R}_{x}\left(\alpha \right)=\left[\begin{array}{ccc}1& 0& 0\\ 0& \mathrm{cos}\alpha & -\mathrm{sin}\alpha \\ 0& \mathrm{sin}\alpha & \mathrm{cos}\alpha \end{array}\right]$

for a rotation angle α.

expand all

Rotation Matrices

Rotation matrices are used to rotate a vector into a new direction.

In transforming vectors in three-dimensional space, rotation matrices are often encountered. Rotation matrices are used in two senses: they can be used to rotate a vector into a new position or they can be used to rotate a coordinate basis (or coordinate system) into a new one. In this case, the vector is left alone but its components in the new basis will be different from those in the original basis. In Euclidean space, there are three basic rotations: one each around the x, y and z axes. Each rotation is specified by an angle of rotation. The rotation angle is defined to be positive for a rotation that is counterclockwise when viewed by an observer looking along the rotation axis towards the origin. Any arbitrary rotation can be composed of a combination of these three (Euler's rotation theorem). For example, one can rotated a vector using a sequence of three rotations: ${v}^{\prime }=Av={R}_{z}\left(\gamma \right){R}_{y}\left(\beta \right){R}_{x}\left(\alpha \right)v$.

The rotation matrices that rotate a vector around the x, y, and z-axes are given by:

• Counterclockwise rotation around x-axis

${R}_{x}\left(\alpha \right)=\left[\begin{array}{ccc}1& 0& 0\\ 0& \mathrm{cos}\alpha & -\mathrm{sin}\alpha \\ 0& \mathrm{sin}\alpha & \mathrm{cos}\alpha \end{array}\right]$

• Counterclockwise rotation around y-axis

${R}_{y}\left(\beta \right)=\left[\begin{array}{ccc}\mathrm{cos}\beta & 0& \mathrm{sin}\beta \\ 0& 1& 0\\ -\mathrm{sin}\beta & 0& \mathrm{cos}\beta \end{array}\right]$

• Counterclockwise rotation around z-axis

${R}_{z}\left(\gamma \right)=\left[\begin{array}{ccc}\mathrm{cos}\gamma & -\mathrm{sin}\gamma & 0\\ \mathrm{sin}\gamma & \mathrm{cos}\gamma & 0\\ 0& 0& 1\end{array}\right]$

The following three figures show what positive rotations look like for each rotation axis:

For any rotation, there is an inverse rotation satisfying ${A}^{-1}A=1$. For example, the inverse of the x-axis rotation matrix is obtained by changing the sign of the angle:

${R}_{x}^{-1}\left(\alpha \right)={R}_{x}\left(-\alpha \right)=\left[\begin{array}{ccc}1& 0& 0\\ 0& \mathrm{cos}\alpha & \mathrm{sin}\alpha \\ 0& -\mathrm{sin}\alpha & \mathrm{cos}\alpha \end{array}\right]={R}_{x}^{\prime }\left(\alpha \right)$

This example illustrates a basic property: the inverse rotation matrix equals the transpose of the original. Rotation matrices satisfy A'A = 1, and consequently det(A) = 1. Under rotations, vector lengths are preserved as well as the angles between vectors.

We can think of rotations in another way. Consider the original set of basis vectors, $i,j,k$, and rotate them all using the rotation matrix A. This produces a new set of basis vectors ${i}^{\prime },j{,}^{\prime }{k}^{\prime }$ related to the original by:

$\begin{array}{ll}{i}^{\prime }\hfill & =Ai\hfill \\ {j}^{\prime }\hfill & =Aj\hfill \\ {k}^{\prime }\hfill & =Ak\hfill \end{array}$

The new basis vectors can be written as linear combinations of the old ones and involve the transpose:

$\left[\begin{array}{c}{i}^{\prime }\\ {j}^{\prime }\\ {k}^{\prime }\end{array}\right]={A}^{\prime }\left[\begin{array}{c}i\\ j\\ k\end{array}\right]$

Now any vector can be written as a linear combination of either set of basis vectors:

$v={v}_{x}i+{v}_{y}j+{v}_{z}k={{v}^{\prime }}_{x}{i}^{\prime }+{{v}^{\prime }}_{y}{j}^{\prime }+{{v}^{\prime }}_{z}{k}^{\prime }$

Using some algebraic manipulation, one can derive the transformation of components for a fixed vector when the basis (or coordinate system) rotates

$\left[\begin{array}{c}{{v}^{\prime }}_{x}\\ {{v}^{\prime }}_{y}\\ {{v}^{\prime }}_{z}\end{array}\right]={A}^{-1}\left[\begin{array}{c}{v}_{x}\\ {v}_{y}\\ {v}_{z}\end{array}\right]={A}^{\prime }\left[\begin{array}{c}{v}_{x}\\ {v}_{y}\\ {v}_{z}\end{array}\right]$

Thus the change in components of a vector when the coordinate system rotates involves the transpose of the rotation matrix. The next figure illustrates how a vector stays fixed as the coordinate system rotates around the x-axis. The figure after shows how this can be interpreted as a rotation of the vector in the opposite direction.

References

[1] Goldstein, H., C. Poole and J. Safko,Classical Mechanics, 3rd Edition, San Francisco: Addison Wesley, 2002, pp. 142–144.