Euler Angles

⚡ Key Takeaways

Euler angles are a set of three angles that describe the orientation of a rigid body (or a rotated coordinate frame) relative to a fixed reference frame, expressed as a sequence of three elementary rotations about coordinate axes. Key result: any rotation in 3D space can be decomposed into exactly three successive rotations — most commonly labelled α,β,γ\alpha, \beta, \gamma (or ϕ,θ,ψ\phi, \theta, \psi) — about specified axes. Applies in: classical mechanics, robotics, aerospace navigation, computer graphics, crystallography, and quantum angular-momentum theory. Who/when: introduced by Leonhard Euler in the 1770s.

💡 The Core Insight

Three sequential rotations about coordinate axes can reach any orientation in 3D. The trick is that after the first rotation, the second rotation can be taken about a body axis (one that moved with the body) or a fixed/space axis; these two viewpoints generate the same set of orientations but require composing rotation matrices in opposite order. Euler angles trade the elegance of a single global description for three intuitive, separately measurable numbers — at the cost of coordinate singularities.

Formal Statement

DefinitionEuler Angles and Rotation Conventions

An Euler-angle convention is a choice of an ordered triple of coordinate axes (e^i,e^j,e^k)(\hat e_{i}, \hat e_{j}, \hat e_{k}) together with three angles (α,β,γ)(\alpha, \beta, \gamma) such that the total rotation matrix is

1
R(α,β,γ)=Rk(γ) Rj(β) Ri(α)\quad R(\alpha,\beta,\gamma) = R_{k}(\gamma)\, R_{j}(\beta)\, R_{i}(\alpha)

Derivation hint: read right-to-left for <strong>intrinsic (body-fixed)</strong> rotations, or left-to-right composition for <strong>extrinsic (space-fixed)</strong> rotations; the two interpretations give the same matrix product reversed. Here Rx,Ry,RzR_{x}, R_{y}, R_{z} denote the elementary (active) rotation matrices about the x,y,zx, y, z axes:

2
Rz(θ)=(cos⁡θ−sin⁡θ0sin⁡θcos⁡θ0001)\quad R_{z}(\theta) = \begin{pmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{pmatrix}

Derivation hint: rotate the basis vectors x^,y^\hat x, \hat y in the xyxy-plane by θ\theta and read off the columns; the zz-axis is fixed.

3
Rx(θ)=(1000cos⁡θ−sin⁡θ0sin⁡θcos⁡θ),Ry(θ)=(cos⁡θ0sin⁡θ010−sin⁡θ0cos⁡θ)\quad R_{x}(\theta) = \begin{pmatrix} 1 & 0 & 0 \\ 0 & \cos\theta & -\sin\theta \\ 0 & \sin\theta & \cos\theta \end{pmatrix},\qquad R_{y}(\theta) = \begin{pmatrix} \cos\theta & 0 & \sin\theta \\ 0 & 1 & 0 \\ -\sin\theta & 0 & \cos\theta \end{pmatrix}

Derivation hint: cyclically permute the indices (x,y,z)→(y,z,x)(x,y,z)\to(y,z,x) in [2]; note the sign placement in RyR_y from the cyclic ordering. There are twelve valid conventions, split into two families:

  • Proper (classical) Euler angles, where the first and third axes repeat, e.g. zz–xx–zz, zz–yy–zz. Six such sequences.
  • Tait–Bryan angles (also "Cardan angles"), where all three axes differ, e.g. zz–yy–xx (yaw–pitch–roll). Six such sequences.

Symbols: α\alpha (first / precession), β\beta (second / nutation), γ\gamma (third / spin) for the classic zz–xx–zz proper convention.

TheoremSurjectivity onto SO(3)

For any fixed admissible convention, the map (α,β,γ)↦R(α,β,γ)(\alpha,\beta,\gamma) \mapsto R(\alpha,\beta,\gamma) is surjective onto SO(3)SO(3): every proper rotation is realizable. With the zz–xx–zz convention the standard ranges are

4
α∈[0,2π),β∈[0,π],γ∈[0,2π).\quad \alpha \in [0,2\pi),\qquad \beta \in [0,\pi],\qquad \gamma \in [0,2\pi).

Derivation hint: count parameters (SO(3)SO(3) is a 3-manifold), then show the second axis can tilt the body zz-axis to any point on the unit sphere via (α,β)(\alpha,\beta), with γ\gamma fixing the residual rotation about it. The map fails to be injective and is singular on the set β∈{0,π}\beta \in \{0, \pi\} — this is gimbal lock.

Why It Holds / Derivation

ProofDecomposition of an arbitrary rotation (z–x–z)

We show any R∈SO(3)R \in SO(3) equals Rz(α)Rx(β)Rz(γ)R_z(\alpha)R_x(\beta)R_z(\gamma).

Step 1 — fix the body zz-axis. Let n^=Rz^\hat n = R\hat z be the image of the body's third axis. Since n^\hat n is a unit vector, write it in spherical coordinates with polar angle β\beta and azimuth α\alpha:

5
n^=(sin⁡βcos⁡α, sin⁡βsin⁡α, cos⁡β).\quad \hat n = (\sin\beta\cos\alpha,\ \sin\beta\sin\alpha,\ \cos\beta).

Derivation hint: any unit vector on S2S^2 is parametrized by two angles; identify β\beta as the angle from +z+z and α\alpha as the longitude.

Step 2 — reach n^\hat n. The composite Rz(α)Rx(β)R_z(\alpha)R_x(\beta) sends z^\hat z to exactly n^\hat n: Rx(β)R_x(\beta) tilts z^\hat z by β\beta in the yzyz-plane, then Rz(α)R_z(\alpha) swings it to longitude α\alpha.

Step 3 — fix the residual spin. Both RR and Rz(α)Rx(β)R_z(\alpha)R_x(\beta) map z^→n^\hat z \to \hat n, so

6
S≡(Rz(α)Rx(β))−1R\quad S \equiv \big(R_z(\alpha)R_x(\beta)\big)^{-1} R

fixes z^\hat z, hence SS is a rotation about z^\hat z: S=Rz(γ)S = R_z(\gamma) for some γ\gamma. Derivation hint: a rotation that fixes a vector z^\hat z acts on its orthogonal complement, i.e. lies in the SO(2)SO(2) subgroup of rotations about z^\hat z.

Step 4 — assemble. Rearranging [6],

7
R=Rz(α) Rx(β) Rz(γ).\quad R = R_z(\alpha)\,R_x(\beta)\,R_z(\gamma).

Derivation hint: left-multiply [6] by Rz(α)Rx(β)R_z(\alpha)R_x(\beta). This proves surjectivity. The angle β\beta is recovered uniquely in [0,π][0,\pi] from cos⁡β=R33\cos\beta = R_{33}; α,γ\alpha,\gamma from off-diagonal entries — except when β=0\beta=0 or π\pi, where Rx(β)R_x(\beta) becomes diagonal and only the combination α±γ\alpha\pm\gamma is determined. ■\blacksquare

∎
mathematician · Leonhard Euler | 1707–1783

Euler introduced these angles in his analyses of rigid-body rotation and lunar motion in the 1770s. He proved the foundational rotation theorem — that any displacement of a rigid body with one fixed point is equivalent to a single rotation about some axis (the precursor to the axis–angle representation) — and recognized that three angles suffice to specify orientation. His name is attached not only to the angles but to the Euler's Rotation Theorem and the dynamical Euler's Equations (Rigid Body) governing how angular velocity evolves.

Building Intuition

🧠 Intuition

Picture a gimbal: three nested rings, each free to spin about one axis. The outermost ring rotates by α\alpha, the next (mounted inside it) by β\beta, the innermost by γ\gamma. The orientation of the payload at the center is the cumulative effect. Think of aircraft attitude: yaw (turn left/right about vertical), pitch (nose up/down), roll (bank). These are Tait–Bryan angles. Each is something a pilot feels separately — that physical separability is exactly why Euler angles persist despite their mathematical warts. The catch: tilt the pitch to 90°90° (nose straight up) and the yaw axis and roll axis become parallel. Now turning the yaw ring and turning the roll ring do the same thing — you have lost the ability to rotate about the third independent direction. That's gimbal lock, and it lives at β∈{0,π}\beta \in \{0,\pi\}.

Figure
A z–x–z Euler angle decomposition: line of nodes N and the three angles α, β, γ
Z X Y Z' N (line of nodes) β α γ α: precession about Z β: nutation tilting Z→Z' γ: spin about Z'

Worked Examples

ExampleRotation matrix from given z–x–z angles

Given: α=30°\alpha = 30°, β=45°\beta = 45°, γ=60°\gamma = 60° in the zz–xx–zz proper convention. Find R=Rz(α)Rx(β)Rz(γ)R = R_z(\alpha)R_x(\beta)R_z(\gamma) and the new direction of the body zz-axis.

Step 1 — the body zz-axis. Using [5] with β=45°\beta=45°, α=30°\alpha=30°:

n^=(sin⁡45°cos⁡30°, sin⁡45°sin⁡30°, cos⁡45°)=(0.612, 0.354, 0.707).\hat n = (\sin45°\cos30°,\ \sin45°\sin30°,\ \cos45°) = (0.612,\ 0.354,\ 0.707).

Step 2 — full matrix. With cα=0.866,sα=0.5c_\alpha=0.866, s_\alpha=0.5; cβ=sβ=0.707c_\beta=s_\beta=0.707; cγ=0.5,sγ=0.866c_\gamma=0.5, s_\gamma=0.866, multiply [1]:

R≈(0.127−0.7800.6120.927−0.1270.354−0.3540.6120.707).R \approx \begin{pmatrix} 0.127 & -0.780 & 0.612 \\ 0.927 & -0.127 & 0.354 \\ -0.354 & 0.612 & 0.707 \end{pmatrix}.

Step 3 — check. R33=cos⁡β=0.707R_{33}=\cos\beta=0.707 ✓, and the third column equals n^\hat n ✓.

Boxed answer: n^=(0.612, 0.354, 0.707),R33=0.707\boxed{\hat n = (0.612,\ 0.354,\ 0.707),\quad R_{33}=0.707} (dimensionless).

ExampleExtracting Euler angles from a matrix

Given: a rotation matrix

R=(0−10100001)R = \begin{pmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{pmatrix}

Find its zz–xx–zz Euler angles.

Step 1 — get β\beta. cos⁡β=R33=1⇒β=0°\cos\beta = R_{33} = 1 \Rightarrow \beta = 0°.

Step 2 — gimbal lock! With β=0\beta=0 the formula gives R=Rz(α+γ)R = R_z(\alpha+\gamma), so only the sum is determined:

Rz(α+γ)=(cos⁡(α+γ)−sin⁡(α+γ)0sin⁡(α+γ)cos⁡(α+γ)0001).R_z(\alpha+\gamma) = \begin{pmatrix} \cos(\alpha+\gamma) & -\sin(\alpha+\gamma) & 0\\ \sin(\alpha+\gamma) & \cos(\alpha+\gamma) & 0 \\ 0&0&1\end{pmatrix}.

Matching: cos⁡(α+γ)=0, sin⁡(α+γ)=1⇒α+γ=90°\cos(\alpha+\gamma)=0,\ \sin(\alpha+\gamma)=1 \Rightarrow \alpha+\gamma = 90°.

Step 3 — convention. Set γ=0°\gamma = 0° (standard choice), so α=90°\alpha = 90°.

Boxed answer: α=90°, β=0°, γ=0°\boxed{\alpha = 90°,\ \beta = 0°,\ \gamma = 0°} — and note the answer is non-unique; any (α,γ)(\alpha,\gamma) with α+γ=90°\alpha+\gamma=90° works.

Common Misconceptions

⚠️ Common mistake

"Euler angles compose by adding." They do not. If you apply angles (α1,β1,γ1)(\alpha_1,\beta_1,\gamma_1) then (α2,β2,γ2)(\alpha_2,\beta_2,\gamma_2), the result is not (α1+α2,… )(\alpha_1+\alpha_2,\dots). You must multiply the rotation matrices (or quaternions) and re-extract angles. Euler angles live on a curved manifold, not a vector space.

"Intrinsic and extrinsic are different conventions." They describe the same set of rotations; an intrinsic zz–xx–zz sequence equals the extrinsic zz–xx–zz sequence with the angle order reversed. Confusing the two is the single most common source of sign and ordering bugs.

Counterexample

Consider trying to interpolate smoothly between two orientations by linearly interpolating their Euler angles. Take orientation A with (α,β,γ)=(0°,1°,0°)(\alpha,\beta,\gamma)=(0°,1°,0°) and orientation B with (180°,1°,180°)(180°, 1°, 180°). Linear interpolation in angle space sweeps α\alpha and γ\gamma each through 180°180°, producing a wild 360°360° tumble — yet the actual orientations A and B are nearly identical (both are tiny tilts). The Euler-angle path bears no resemblance to the true Slerp (Spherical Linear Interpolation) geodesic on SO(3)SO(3). This is why animation and robotics pipelines convert to quaternions before interpolating.

Connections

connection

Euler angles are one chart among several for SO(3)SO(3). They relate to:

  • Quaternions — a 4-parameter, singularity-free double cover; the standard remedy for gimbal lock.
  • Rotation Matrices — the 3×33\times3 orthogonal matrices that Euler angles construct via [1].
  • Axis-Angle Representation — Euler's rotation theorem's single-axis form; convertible to/from Euler angles.
  • Angular Velocity — the body angular velocity is a nonlinear function of (α˙,β˙,γ˙)(\dot\alpha,\dot\beta,\dot\gamma); the relation diverges at gimbal lock (see Euler's Equations (Rigid Body)).
  • Lie Groups and Lie Algebras — SO(3)SO(3) is a compact 3-manifold; Euler angles are its local coordinate chart, so(3)\mathfrak{so}(3) its tangent algebra.

Real-World Applications

🔬 Where this appears

Historical Development

⏳ History
- 1748–1751 — Euler develops the analytic theory of rigid-body rotation and the kinematics of moving frames.
- 1751 — Euler's rotation theorem (single fixed-point displacement = one rotation about an axis) established.
- 1775 — Euler publishes Formulae generales pro translatione quacunque corporum rigidorum, giving the explicit three-angle parametrization now bearing his name.
- 1830s — Gerolamo Cardano's earlier gimbal mechanism (16th c.) lends the name Cardan angles to the all-distinct-axis (Tait–Bryan) family.
- 1843 — Hamilton invents Quaternions, later recognized as the cure for Euler-angle singularities.
- 1899–1911 — Tait and Bryan formalize the aeronautical yaw–pitch–roll conventions.
- 1965 — Gemini and 1969 Apollo missions: gimbal lock becomes a celebrated engineering hazard in spaceflight guidance.
- 1985 — Ken Shoemake's SIGGRAPH paper popularizes quaternion interpolation in graphics, displacing Euler angles for animation.
- 2000s–present — Standardization (e.g., Bunge convention in crystallography; aerospace standard zz–yy–xx) and ubiquitous quaternion backends in software.

Subtleties & Limits

open-problem

There is no global, smooth, singularity-free three-angle chart on SO(3)SO(3). This is a topological certainty, not a convention defect: SO(3)SO(3) is a compact 3-manifold diffeomorphic to real projective space RP3\mathbb{RP}^3, which is not parallelizable by a single coordinate chart without a singularity (related to the hairy-ball-type obstructions). Every Euler convention therefore has a gimbal-lock locus. Open/practical questions that follow:

  • Optimal singularity placement: given a known operating envelope (e.g., an aircraft that never pitches past ±60°\pm60°), which convention pushes the singularity furthest from use? This is a design optimization.
  • Numerical conditioning near singularities: the map from angular rates to (α˙,β˙,γ˙)(\dot\alpha,\dot\beta,\dot\gamma) has a Jacobian that blows up like 1/sin⁡β1/\sin\beta; robust filtering near gimbal lock remains an engineering art.
  • Mean orientation: averaging a set of orientations is ill-defined in Euler space; the correct treatment uses the Lie Groups and Lie Algebras structure or quaternion barycenters, and the "best" practical algorithm is still debated.

See Also

Quaternions · Rotation Matrices · Axis-Angle Representation · Euler's Rotation Theorem · Euler's Equations (Rigid Body) · Angular Velocity · Lie Groups and Lie Algebras · Slerp (Spherical Linear Interpolation)