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: intrinsic and extrinsic rotations (Definition)

Euler Angles: Intrinsic and Extrinsic Rotations

Euler Angle descriptions are frequently labeled intrinsic or extrinsic.

Those words answer a specific geometric question:

Which axes are used for the second and third rotations?

In an intrinsic sequence, each new rotation is taken about an axis of the current intermediate frame. The axes move with the frame.

In an extrinsic sequence, each rotation is taken about an axis fixed in the original reference frame.

This distinction is independent of the active versus passive distinction. PhysicsLibrary uses passive coordinate maps as its house convention, but both intrinsic and extrinsic axis constructions can be described passively.

The objective of this article is to make those statements geometric, derive their matrix consequences, and establish the reverse-order equivalence between the two descriptions.

Convention recap

Let frames $A$ and $B$ be right handed and orthonormal.

PhysicsLibrary writes the passive coordinate map as

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

The elementary passive frame rotations are

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

and

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

The corresponding active rotation matrices are

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

The $R_i$ notation will be useful when describing how frame basis vectors move in the fixed reference frame.

Why the pictures must show intermediate frames

A single diagram containing only the initial and final frames cannot reveal whether a three angle construction was intrinsic or extrinsic.

The difference appears at the second rotation.

After the first rotation, an intrinsic construction uses an axis belonging to the newly rotated frame.

An extrinsic construction continues to use an axis belonging to the original frame.

For this reason the figures in this article show intermediate frames explicitly rather than attempting to compress the entire sequence into one dense axis drawing.

This is also the organization used by modern multibody dynamics software and reference frame treatments: body fixed rotations are constructed through new intermediate axes, while space fixed rotations continue to use the parent frame axes.

Intrinsic rotations: the axes move with the frame

Consider an intrinsic $3$-$2$-$1$ construction.

Let

$\displaystyle A_0=A. $

The first frame rotation is through $\alpha$ about axis $3$ of frame $A$. Call the new frame $A_1$.

The second rotation is through $\beta$, but now the rotation axis is axis $2$ of frame $A_1$, not axis $2$ of the original frame.

Image EA03_intrinsic_moving_axis_second_rotation

Figure. Intrinsic construction through the first two rotations of a $3$-$2$-$1$ sequence. After the first rotation, the second rotation is about the moved axis $y_1$. The original $y_A$ axis is retained as a reference so the difference is visible.

The full intrinsic frame chain is

$\displaystyle A_0 \longrightarrow A_1 \longrightarrow A_2 \longrightarrow A_3=B. $

For a generic intrinsic $i$-$j$-$k$ sequence, the first rotation is about axis $i$ of $A_0$, the second about axis $j$ of $A_1$, and the third about axis $k$ of $A_2$.

The corresponding passive coordinate transformations are

$\displaystyle {}^{A_1}\mathbf v = C_i(\alpha)\,{}^A\mathbf v,$ (6)
$\displaystyle {}^{A_2}\mathbf v = C_j(\beta)\,{}^{A_1}\mathbf v,$ (7)

and

$\displaystyle {}^B\mathbf v = C_k(\gamma)\,{}^{A_2}\mathbf v.$ (8)

Substitution gives the PhysicsLibrary intrinsic sequence rule

$\displaystyle {}^BC_A = C_k(\gamma) C_j(\beta) C_i(\alpha).$ (9)

The rightmost matrix acts first on a coordinate column.

Extrinsic rotations: the axes stay fixed

Now consider an extrinsic construction.

The first frame rotation is again about an axis of the original reference frame. After that rotation, however, the second and third rotation axes remain axes of the original frame $A$.

For an extrinsic $3$-$2$-$1$ example, the second rotation is about the original axis $2_A$, even though the body frame has already moved.

Image EA03_extrinsic_fixed_axis_second_rotation

Figure. Extrinsic construction through the first two rotations of a $3$-$2$-$1$ sequence. The second rotation is about the fixed original axis $y_A$. The intermediate frame has moved, but the axis used to define the second rotation has not.

It is helpful to derive the extrinsic passive DCM through the orientation of the moving frame basis expressed in the fixed frame.

Let

$\displaystyle R_i(\lambda)=C_i(\lambda)^T $

denote the active matrix that rotates frame basis vectors through the positive geometric angle $\lambda$ about fixed axis $i$.

For an extrinsic $i$-$j$-$k$ frame sequence,

$\displaystyle {}^AE_B = R_k(\gamma) R_j(\beta) R_i(\alpha),$ (10)

where the columns of ${}^AE_B$ are the final frame $B$ basis vectors expressed in frame $A$.

The passive coordinate map is the transpose:

$\displaystyle {}^BC_A = ({}^AE_B)^T.$ (11)

Therefore

$\displaystyle {}^BC_A = C_i(\alpha) C_j(\beta) C_k(\gamma).$ (12)

This is the generic PhysicsLibrary passive formula for an extrinsic $i$-$j$-$k$ sequence.

Intrinsic and extrinsic sequences with the same axis labels are different

A common mistake is to see the label $3$-$2$-$1$ and assume that intrinsic $3$-$2$-$1$ and extrinsic $3$-$2$-$1$ are the same construction.

They are not.

For the same angle list $(\alpha,\beta,\gamma)$,

$\displaystyle C_{{\rm int},321} = C_1(\gamma) C_2(\beta) C_3(\alpha),$ (13)

whereas

$\displaystyle C_{{\rm ext},321} = C_3(\alpha) C_2(\beta) C_1(\gamma).$ (14)

Finite rotations generally do not commute, so these products are generally different.

Numerical comparison

Take

$\displaystyle \alpha=30^\circ, \qquad \beta=20^\circ, \qquad \gamma=10^\circ. $

The intrinsic $3$-$2$-$1$ passive matrix is approximately

$\displaystyle C_{{\rm int},321} = \begin{bmatrix} +0.8138 & +0.4698 & -0.3420\ -0.4410 & +0.8826 & +0.1632\ +0.3785 & +0.0180 & +0.9254 \end{bmatrix}.$ (15)

The extrinsic $3$-$2$-$1$ passive matrix is approximately

$\displaystyle C_{{\rm ext},321} = \begin{bmatrix} +0.8138 & +0.5438 & -0.2049\ -0.4698 & +0.8232 & +0.3188\ +0.3420 & -0.1632 & +0.9254 \end{bmatrix}.$ (16)

The entries differ, so the two interpretations produce different final orientations.

The reverse-order equivalence

Intrinsic and extrinsic descriptions do have an exact equivalence, but the axis order and angle order reverse together.

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

$\displaystyle C_{\rm int} = C_k(\gamma) C_j(\beta) C_i(\alpha).$ (17)

Now consider extrinsic $k$-$j$-$i$ with angles $(\gamma,\beta,\alpha)$.

The extrinsic rule gives

$\displaystyle C_{\rm ext} = C_k(\gamma) C_j(\beta) C_i(\alpha).$ (18)

Thus

intrinsic $\displaystyle i$-$\displaystyle j$-$\displaystyle k (\alpha,\beta,\gamma) \quad\Longleftrightarrow$   extrinsic $\displaystyle k$-$\displaystyle j$-$\displaystyle i (\gamma,\beta,\alpha).$ (19)
Image EA03_intrinsic_extrinsic_equivalence

Figure. Reverse-order equivalence. Intrinsic $3$-$2$-$1$ with $(\alpha,\beta,\gamma)$ and extrinsic $1$-$2$-$3$ with $(\gamma,\beta,\alpha)$ produce the same passive DCM and the same final orientation.

For the important $3$-$2$-$1$ case,

intrinsic $\displaystyle 3$-$\displaystyle 2$-$\displaystyle 1 (\alpha,\beta,\gamma) \quad\Longleftrightarrow$   extrinsic $\displaystyle 1$-$\displaystyle 2$-$\displaystyle 3 (\gamma,\beta,\alpha).$ (20)

The safest memory rule is:

Reverse the axis order and reverse the associated angle order.

Aerospace yaw pitch roll

PhysicsLibrary specializes intrinsic $3$-$2$-$1$ to

$\displaystyle \alpha=\psi, \qquad \beta=\theta, \qquad \gamma=\phi,$ (21)

where $\psi$ is yaw, $\theta$ is pitch, and $\phi$ is roll.

Therefore

$\displaystyle {}^BC_A = C_1(\phi) C_2(\theta) C_3(\psi).$ (22)

The equivalent extrinsic description is $1$-$2$-$3$ with chronological angles

$\displaystyle (\phi,\theta,\psi).$ (23)

In words:

  1. intrinsic: yaw about the current $3$ axis, then pitch about the new $2$ axis, then roll about the newest $1$ axis;
  2. equivalent extrinsic: roll about fixed axis $1_A$, then pitch about fixed axis $2_A$, then yaw about fixed axis $3_A$.

Both descriptions give the same final orientation when the association is handled exactly as stated.

Body fixed and space fixed terminology

Many mechanics and software references use the phrases body fixed and space fixed.

In the terminology used here:

Term Axis behavior PhysicsLibrary word
Body fixed each new axis belongs to an intermediate moving frame intrinsic
Space fixed each axis remains attached to the original reference frame extrinsic

SymPy's reference frame tools use this distinction directly: orient_body_fixed performs rotations about successive intermediate frame axes, while orient_space_fixed performs rotations about the parent frame axes.

The terminology is helpful, but an engineering article should still state the axis sequence and transformation direction explicitly.

Intrinsic versus extrinsic is independent of active versus passive

There are two independent questions:

  1. Which axes define the sequence?
  2. What object is being transformed?

Intrinsic versus extrinsic answers the first question.

Active versus passive answers the second.

An active rotation changes a physical vector while the coordinate frame is held fixed.

A passive rotation changes the coordinate representation by changing the frame while the physical vector is held fixed.

Therefore all four combinations are possible:

  Intrinsic axes Extrinsic axes
Passive moving frame axes, coordinate map fixed reference axes, coordinate map
Active moving axes, vector rotation fixed axes, vector rotation

PhysicsLibrary's house convention is passive and intrinsic unless explicitly stated otherwise.

Why different references appear to reverse the order

Several independent reversals can occur in the literature:

  1. intrinsic versus extrinsic descriptions;
  2. active versus passive transformations;
  3. $A\rightarrow B$ versus $B\rightarrow A$ map direction;
  4. chronological rotation order versus written matrix multiplication order;
  5. first-second-third angle notation versus physical yaw-pitch-roll names.

A formula should not be judged by matrix order alone.

The frame labels and the definitions of the three angles must be read first.

Software convention diagnostics

Modern software libraries make the intrinsic/extrinsic distinction explicit, but their notation is not universal.

SciPy uses uppercase axis strings such as ZYX for intrinsic rotations and lowercase strings such as zyx for extrinsic rotations.

SymPy uses orient_body_fixed for intrinsic moving axis rotations and orient_space_fixed for extrinsic fixed axis rotations.

These APIs are useful convention checks, but their returned rotation objects must still be reconciled with the PhysicsLibrary passive map direction before numerical matrices are copied into an article or simulation.

A frame-label derivation of the intrinsic rule

The intrinsic rule can be understood without memorizing matrix order.

For the first rotation,

$\displaystyle {}^{A_1}C_A = C_i(\alpha).$ (24)

For the second,

$\displaystyle {}^{A_2}C_{A_1} = C_j(\beta).$ (25)

For the third,

$\displaystyle {}^BC_{A_2} = C_k(\gamma).$ (26)

Coordinate maps compose by matching adjacent frame labels:

$\displaystyle {}^BC_A = {}^BC_{A_2} \,{}^{A_2}C_{A_1} \,{}^{A_1}C_A.$ (27)

Therefore

$\displaystyle {}^BC_A = C_k(\gamma) C_j(\beta) C_i(\alpha).$ (28)

This frame-chain argument is usually safer than relying on a verbal rule such as “multiply in reverse order.”

Checks for an intrinsic/extrinsic conversion

When converting a sequence description, verify all of the following.

  1. The final DCM is unchanged.
  2. The axis order has reversed.
  3. The angle association has reversed with the axes.
  4. Passive versus active interpretation has not silently changed.
  5. The coordinate map direction has not silently changed.
  6. Single-angle reductions still agree.

Common mistakes

  1. Calling a sequence “$3$-$2$-$1$” without stating intrinsic or extrinsic.
  2. Assuming intrinsic and extrinsic $3$-$2$-$1$ are identical.
  3. Reversing the axis order but forgetting to reverse the angle association.
  4. Confusing a moving axis with an axis that merely has the same numerical label.
  5. Treating “body fixed” as a statement about active versus passive rotation rather than about the axes used for successive rotations.
  6. Copying a SciPy or robotics matrix without checking its active/passive and map-direction conventions.
  7. Forgetting that the rightmost matrix acts first on a coordinate column.

Summary

Intrinsic and extrinsic Euler rotations differ in the axes used for successive rotations.

For intrinsic $i$-$j$-$k$,

$\displaystyle {}^BC_A = C_k(\gamma) C_j(\beta) C_i(\alpha).$ (29)

For extrinsic $i$-$j$-$k$,

$\displaystyle {}^BC_A = C_i(\alpha) C_j(\beta) C_k(\gamma).$ (30)

Therefore

intrinsic $\displaystyle i$-$\displaystyle j$-$\displaystyle k (\alpha,\beta,\gamma) \equiv$   extrinsic $\displaystyle k$-$\displaystyle j$-$\displaystyle i (\gamma,\beta,\alpha).$ (31)

The distinction is geometric:

  • intrinsic rotations use axes of successive moving frames;
  • extrinsic rotations use axes fixed in the original frame.

It is independent of the active/passive distinction.

The next article, Euler sequence composition and the twelve standard sequences, uses these rules to organize all six Tait Bryan and all six proper Euler sequences in one consistent framework.

References and further reading

Henderson provides a classic NASA engineering treatment of Euler transformations and their matrix relationships.

Moore's multibody dynamics text illustrates successive body fixed frame orientations through explicit intermediate reference frames.

SymPy's reference frame documentation formalizes the body fixed versus space fixed distinction in software.

SciPy's Euler angle API explicitly distinguishes intrinsic and extrinsic axis sequences.

Diebel provides a broad attitude representation reference useful when comparing Euler conventions with DCM and quaternion conventions.

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
SymPy Development Team, “ReferenceFrame orientation methods,” SymPy documentation. SymPy ReferenceFrame documentation
4
SciPy Developers, “Rotation.from_euler,” SciPy documentation. SciPy Euler rotation documentation
5
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: intrinsic and extrinsic rotations" is owned by bloftin.
(view preamble)
View style:
Keywords:  Euler angles, intrinsic rotations, extrinsic rotations, body fixed rotations, space fixed rotations, moving axes, fixed axes, passive coordinate transformation

Attachments:
example of Euler angles: intrinsic and extrinsic rotations (Example) by bloftin

Cross-references: composition, matrix multiplication, representation, mechanics, commute, formula, diagram, vectors, matrix, reference frame, Euler Angle

This is version 1 of Euler angles: intrinsic and extrinsic rotations, born on 2026-08-28.
Object id is 1123, canonical name is EulerAnglesIntrinsicAndExtrinsicRotations.
Accessed 13 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)