Physics Library
 An open source physics library
Encyclopedia | Forums | Docs | Random | Template Test |  
Login
create new user
Username:
Password:
forget your password?
Main Menu
Sections

Meta

Talkback

Downloads

Information
Euler angles: elementary axis rotations and passive rotation matrices (Definition)

Euler Angles: Elementary Axis Rotations and Passive Rotation Matrices

Every Euler angle sequence is built from three elementary coordinate transformations about the coordinate axes.

For that reason, the most efficient way to understand Euler Angle matrices is to understand the three one axis passive transformations first.

This article derives the passive elementary matrices

$\displaystyle C_1(\lambda),\qquad C_2(\lambda),\qquad C_3(\lambda), $
interprets their signs geometrically, and records the diagnostic tests that make later Euler sequence formulas easier to verify.

Convention and notation

PhysicsLibrary uses right handed orthonormal coordinate frames and passive coordinate transformations.

If the same physical vector has coordinate columns ${}^{A}\mathbf v$ and ${}^{B}\mathbf v$ in frames $A$ and $B$, then

$\displaystyle {}^{B}\mathbf v = {}^{B}C_A \,{}^{A}\mathbf v.$ (1)

A passive transformation therefore keeps the physical vector fixed while the coordinate frame is rotated.

A positive frame rotation follows the right hand rule.

The three elementary passive coordinate transformations are denoted

$\displaystyle C_1(\lambda),\qquad C_2(\lambda),\qquad C_3(\lambda),$ (2)

where $\lambda$ is the rotation angle and the subscript $1,2,3$ refers to the $x,y,z$ axis respectively.

Why elementary matrices matter

A general intrinsic Euler sequence is composed from the elementary transformations.

For intrinsic $i$-$j$-$k$ with sequence angles $(\alpha,\beta,\gamma)$,

$\displaystyle {}^{B}C_A = C_k(\gamma) C_j(\beta) C_i(\alpha).$ (3)

Thus every Euler angle formula is ultimately a product of the three matrices derived in this article.

If their signs are understood at the elementary level, later formulas become much easier to trust and debug.

What changes under a passive rotation

A passive frame rotation changes coordinates, not the physical vector.

Suppose frame $B$ is obtained from frame $A$ by a positive rotation of the coordinate axes through angle $\lambda$ about one of the coordinate axes.

Then a fixed physical vector has one coordinate column in frame $A$ and a different coordinate column in frame $B$.

The unchanged geometry and changed coordinates are related by

$\displaystyle {}^{B}\mathbf v = C_i(\lambda) {}^{A}\mathbf v.$ (4)

This passive viewpoint is the key sign convention.

For example, if the coordinate axes rotate positively about $+z$, then a physical vector that originally had coordinates

$\displaystyle {}^{A}\mathbf v = \begin{bmatrix} 1\\ 0\\ 0 \end{bmatrix}$
will generally not retain those same coordinates in the rotated frame.

Derivation of the rotation about axis 1

Let frame $B$ be obtained from frame $A$ by a positive frame rotation through angle $\lambda$ about axis $1$, the $x$ axis.

The $x$ axis is unchanged by this rotation, while the $y$ and $z$ axes rotate in the $yz$ plane.

Image EA02_passive_rotation_about_x_axis


Figure. Passive frame rotation about axis $1$. The $x$ axis is common to both frames, while the $y$ and $z$ axes of frame $B$ are obtained by a positive frame rotation through angle $\lambda$ about $+x$. The angle label is placed between the pre-rotation and post-rotation axes to emphasize that $\lambda$ is the geometric separation of those axes. All axes share one common origin.

Let

$\displaystyle {}^{A}\mathbf v = \begin{bmatrix} v_1\\ v_2\\ v_3 \end{bmatrix}$
and

$\displaystyle {}^{B}\mathbf v = \begin{bmatrix} u_1\\ u_2\\ u_3 \end{bmatrix}. $

Under the passive rotation about axis $1$,

$\displaystyle u_1=v_1,$ (5)

because the first axis is unchanged.

In the $yz$ plane, the coordinate pair transforms as a two dimensional passive rotation:

$\displaystyle u_2=\cos\lambda\,v_2+\sin\lambda\,v_3,$ (6)
$\displaystyle u_3=-\sin\lambda\,v_2+\cos\lambda\,v_3.$ (7)

Collecting terms gives

$\displaystyle \begin{bmatrix} u_1\\ u_2\\ u_3 \end{bmatrix}= \begin{bmatrix} 1&... ...\lambda&\cos\lambda \end{bmatrix}\begin{bmatrix} v_1\\ v_2\\ v_3 \end{bmatrix}.$ (8)

Therefore

$\displaystyle C_1(\lambda) = \begin{bmatrix} 1&0&0\ 0&\cos\lambda&\sin\lambda\ 0&-\sin\lambda&\cos\lambda \end{bmatrix}.$ (9)

A $90^\circ$ diagnostic for $C_1$

At $\lambda=\pi/2$,

$\displaystyle C_1\left(\frac{\pi}{2}\right) = \begin{bmatrix} 1&0&0\ 0&0&1\ 0&-1&0 \end{bmatrix}.$ (10)

If a fixed physical vector has initial coordinates

$\displaystyle {}^{A}\mathbf v = \begin{bmatrix} 0\\ 1\\ 0 \end{bmatrix}, $
then
$\displaystyle {}^{B}\mathbf v = C_1\left(\frac{\pi}{2}\right) \begin{bmatrix} 0\\ 1\\ 0 \end{bmatrix}= \begin{bmatrix} 0\\ 0\\ -1 \end{bmatrix}.$ (11)

This sign pattern agrees with the passive interpretation: the vector did not move, but the coordinate axes did.

Derivation of the rotation about axis 2

Now let frame $B$ be obtained from frame $A$ by a positive frame rotation through angle $\lambda$ about axis $2$, the $y$ axis.

The $y$ axis is unchanged, while the $x$ and $z$ axes rotate in the $xz$ plane.

Image EA02_passive_rotation_about_y_axis


Figure. Passive frame rotation about axis $2$. The $y$ axis is common to both frames, while the $x$ and $z$ axes of frame $B$ result from a positive frame rotation through angle $\lambda$ about $+y$. The marked angle $\lambda$ is drawn between corresponding old and new axes.

Again write

$\displaystyle {}^{A}\mathbf v = \begin{bmatrix} v_1\\ v_2\\ v_3 \end{bmatrix}, \qquad {}^{B}\mathbf v = \begin{bmatrix} u_1\\ u_2\\ u_3 \end{bmatrix}. $

Because the second axis is unchanged,

$\displaystyle u_2=v_2.$ (12)

The $xz$ coordinates transform as

$\displaystyle u_1=\cos\lambda\,v_1-\sin\lambda\,v_3,$ (13)
$\displaystyle u_3=\sin\lambda\,v_1+\cos\lambda\,v_3.$ (14)

Hence

$\displaystyle \begin{bmatrix} u_1\\ u_2\\ u_3 \end{bmatrix}= \begin{bmatrix} \c... ...ambda&0&\cos\lambda \end{bmatrix}\begin{bmatrix} v_1\\ v_2\\ v_3 \end{bmatrix},$ (15)

so

$\displaystyle C_2(\lambda) = \begin{bmatrix} \cos\lambda&0&-\sin\lambda\ 0&1&0\ \sin\lambda&0&\cos\lambda \end{bmatrix}.$ (16)

A $90^\circ$ diagnostic for $C_2$

At $\lambda=\pi/2$,

$\displaystyle C_2\left(\frac{\pi}{2}\right) = \begin{bmatrix} 0&0&-1\ 0&1&0\ 1&0&0 \end{bmatrix}.$ (17)

If

$\displaystyle {}^{A}\mathbf v = \begin{bmatrix} 0\\ 0\\ 1 \end{bmatrix}, $

then

$\displaystyle {}^{B}\mathbf v = C_2\left(\frac{\pi}{2}\right) \begin{bmatrix} 0\\ 0\\ 1 \end{bmatrix}= \begin{bmatrix} -1\\ 0\\ 0 \end{bmatrix}.$ (18)

Derivation of the rotation about axis 3

Finally let frame $B$ be obtained from frame $A$ by a positive frame rotation through angle $\lambda$ about axis $3$, the $z$ axis.

The $z$ axis is unchanged, while the $x$ and $y$ axes rotate in the $xy$ plane.

Image EA02_passive_rotation_about_z_axis


Figure. Passive frame rotation about axis $3$. The $z$ axis is common to both frames, while the $x$ and $y$ axes of frame $B$ are produced by a positive frame rotation through angle $\lambda$ about $+z$. The angle marker is drawn between the old and new $x$ axes to emphasize the sign convention.

With the same notation,

$\displaystyle u_3=v_3,$ (19)

and the $xy$ coordinates transform as

$\displaystyle u_1=\cos\lambda\,v_1+\sin\lambda\,v_2,$ (20)
$\displaystyle u_2=-\sin\lambda\,v_1+\cos\lambda\,v_2.$ (21)

Therefore

$\displaystyle \begin{bmatrix} u_1\\ u_2\\ u_3 \end{bmatrix}= \begin{bmatrix} \c... ...s\lambda&0\ 0&0&1 \end{bmatrix}\begin{bmatrix} v_1\\ v_2\\ v_3 \end{bmatrix},$ (22)

so

$\displaystyle C_3(\lambda) = \begin{bmatrix} \cos\lambda&\sin\lambda&0\ -\sin\lambda&\cos\lambda&0\ 0&0&1 \end{bmatrix}.$ (23)

A $90^\circ$ diagnostic for $C_3$

At $\lambda=\pi/2$,

$\displaystyle C_3\left(\frac{\pi}{2}\right) = \begin{bmatrix} 0&1&0\ -1&0&0\ 0&0&1 \end{bmatrix}.$ (24)

If

$\displaystyle {}^{A}\mathbf v = \begin{bmatrix} 1\\ 0\\ 0 \end{bmatrix}, $

then

$\displaystyle {}^{B}\mathbf v = C_3\left(\frac{\pi}{2}\right) \begin{bmatrix} 1\\ 0\\ 0 \end{bmatrix}= \begin{bmatrix} 0\\ -1\\ 0 \end{bmatrix}.$ (25)

This example is often the quickest sign check for the passive convention.

Orthogonality, inverse, and determinant

Each elementary matrix is an orthogonal matrix with determinant $+1$.

For each $i=1,2,3$,

$\displaystyle C_i(\lambda)^T C_i(\lambda)=I,$ (26)
$\displaystyle \det C_i(\lambda)=1,$ (27)

and therefore

$\displaystyle C_i(\lambda)^{-1} = C_i(\lambda)^T.$ (28)

Because changing the sign of the angle reverses the frame rotation,

$\displaystyle C_i(-\lambda) = C_i(\lambda)^T = C_i(\lambda)^{-1}.$ (29)

This identity is one of the most useful algebraic checks in Euler angle work.

Relation to active rotation matrices

The passive coordinate transformation and the active vector rotation for the same positive geometric angle are transposes of one another.

If $R_i(\lambda)$ denotes the active rotation matrix, then

$\displaystyle R_i(\lambda) = C_i(\lambda)^T = C_i(-\lambda).$ (30)

Thus many sign disagreements found in textbooks are actually differences between active and passive conventions.

The geometry is the same; the map interpretation is different.

Rows and columns of a passive direction cosine matrix

For a passive direction cosine matrix,

$\displaystyle {}^{B}C_A = \begin{bmatrix} \vert&\vert&\vert\ {}^{B}\hat{\math... ...B}\hat{\mathbf a}_2&{}^{B}\hat{\mathbf a}_3\ \vert&\vert&\vert \end{bmatrix},$ (31)

so the columns are the coordinates of the basis vectors of frame $A$ expressed in frame $B$.

Equivalently, the entries may be written as direction cosines

$\displaystyle ({}^{B}C_A)_{ij} = \hat{\mathbf b}_i\cdot\hat{\mathbf a}_j.$ (32)

Therefore the rows are the components of the basis vectors of frame $B$ measured along the axes of frame $A$.

Both viewpoints are valid and useful.

Small angle forms

For small $\vert\lambda\vert$,

$\displaystyle \cos\lambda \approx 1, \qquad \sin\lambda \approx \lambda. $

Therefore

$\displaystyle C_1(\lambda) \approx \begin{bmatrix} 1&0&0\ 0&1&\lambda\ 0&-\lambda&1 \end{bmatrix},$ (33)
$\displaystyle C_2(\lambda) \approx \begin{bmatrix} 1&0&-\lambda\ 0&1&0\ \lambda&0&1 \end{bmatrix},$ (34)

and

$\displaystyle C_3(\lambda) \approx \begin{bmatrix} 1&\lambda&0\ -\lambda&1&0\ 0&0&1 \end{bmatrix}.$ (35)

These first-order forms are useful in error analysis and linearized attitude models, but they should not be mistaken for exact finite rotation matrices.

How the elementary matrices build Euler sequences

Because a generic intrinsic sequence is

$\displaystyle {}^{B}C_A = C_k(\gamma)C_j(\beta)C_i(\alpha), $

every Euler matrix is formed by multiplying the elementary matrices in the appropriate order.

For example, the PhysicsLibrary passive intrinsic $3$-$2$-$1$ yaw pitch roll map is

$\displaystyle {}^{B}C_A = C_1(\phi) C_2(\theta) C_3(\psi).$ (36)

The rightmost factor acts first on a coordinate column.

Thus the first step is a positive frame rotation about axis $3$ through yaw $\psi$, the second step is a positive frame rotation about the current axis $2$ through pitch $\theta$, and the third step is a positive frame rotation about the current axis $1$ through roll $\phi$.

A compact verification battery

Any derived Euler matrix should agree with the elementary matrices under appropriate specializations.

Useful tests include:

  1. set all angles to zero and verify the identity matrix;
  2. set two angles to zero and verify the correct elementary matrix;
  3. test the $90^\circ$ cases recorded above;
  4. verify orthogonality:

    $\displaystyle CC^T=I; $
  5. verify proper determinant:

    $\displaystyle \det C=1; $
  6. verify the reverse map:

    $\displaystyle {}^{A}C_B = ({}^{B}C_A)^T; $
  7. compare with the corresponding passive quaternion relation when a quaternion representation is available.

These checks are simple enough to do by hand and strong enough to catch most sign, order, and convention mistakes.

Summary

The three elementary passive coordinate transformations are

$\displaystyle C_1(\lambda) = \begin{bmatrix} 1&0&0\ 0&\cos\lambda&\sin\lambda\ 0&-\sin\lambda&\cos\lambda \end{bmatrix},$ (37)
$\displaystyle C_2(\lambda) = \begin{bmatrix} \cos\lambda&0&-\sin\lambda\ 0&1&0\ \sin\lambda&0&\cos\lambda \end{bmatrix},$ (38)

and

$\displaystyle C_3(\lambda) = \begin{bmatrix} \cos\lambda&\sin\lambda&0\ -\sin\lambda&\cos\lambda&0\ 0&0&1 \end{bmatrix}.$ (39)

They are orthogonal, proper, and related to their active counterparts by transpose.

Every intrinsic Euler angle matrix in the PhysicsLibrary convention is built from these elementary factors according to

$\displaystyle {}^{B}C_A = C_k(\gamma) C_j(\beta) C_i(\alpha).$ (40)

Understanding these three matrices is therefore the key first step toward understanding every later Euler sequence formula.

The next companion article, Elementary axis rotations and passive rotation matrices: examples, exercises, and solutions, will reinforce these results with direct computations and verification checks.

References and further reading

Henderson is a classic engineering source for Euler angle transformations, quaternions, and direction cosine matrices.

Moore develops passive coordinate transformations and orientation of reference frames in a modern open text.

Diebel gives a compact comparative overview of Euler angles, rotation matrices, quaternions, and rotation vectors.

Bibliography

1
D. M. Henderson, Euler Angles, Quaternions, and Transformation Matrices: Working Relationships, JSC-12960, NASA Johnson Space Center, 1977. NASA Technical Reports Server
2
J. K. Moore, Learn Multibody Dynamics, chapter “Orientation of Reference Frames,” 2026 edition. Licensed CC BY 4.0. Orientation of Reference Frames
3
J. Diebel, “Representing Attitude: Euler Angles, Unit Quaternions, and Rotation Vectors,” Stanford University, 2006. Online PDF

License

Unless otherwise noted, this PhysicsLibrary entry is intended for release under the Creative Commons Attribution ShareAlike 4.0 International license.



"Euler angles: elementary axis rotations and passive rotation matrices" is owned by bloftin.
(view preamble)
View style:
See Also: Axis Angle Representation and Unit Quaternion

Also defines:  Euler angle sequence
Keywords:  Euler angles, passive rotation matrix, direction cosine, matrix, elementary rotations, coordinate transformation, intrinsic rotation

Cross-references: computations, representation, relation, quaternion, direction cosines, direction cosine matrix, work, algebraic, identity, determinant, vector, formulas, matrices, Euler Angle

This is version 1 of Euler angles: elementary axis rotations and passive rotation matrices, born on 2026-08-28.
Object id is 1122, canonical name is EulerAnglesElementaryAxisRotationsAndPassiveRotationMatrices.
Accessed 5 times total.

Classification:
Physics Classification02.40.Yy (Geometric mechanics )
 45.40.-f (Dynamics and kinematics of rigid bodies)
 02.10.Ud (Linear algebra)
Pending Errata and Addenda
None.
Discussion
Style: Expand: Order:

No messages.

Interact
rate | post | correct | update request | add derivation | add example | add (any)