Euler angles

Euler angles

The Euler angles were developed by Leonhard Euler to describe the orientation of a rigid body (a body in which the relative position of all its points is constant) in 3-dimensional Euclidean space. To give an object a specific orientation it may be subjected to a sequence of three rotations described by the Euler angles. This is equivalent to saying that a rotation matrix can be decomposed as a product of three elemental rotations.


Euler angles are a means of representing the spatial orientation of any frame of the space as a composition of rotations from a reference frame. In the following the fixed system is denoted in lower case (x,y,z) and the rotated system is denoted in upper case letters (X,Y,Z).

The definition is Static. The intersection of the "xy" and the "XY" coordinate planes is called the "line of nodes" (N).
*α is the angle between the "x"-axis and the line of nodes.
*β is the angle between the "z"-axis and the "Z"-axis.
*γ is the angle between the line of nodes and the "X"-axis.

This previous definition is called z-x-z convention and is one of several common conventions; others are x-y-z and z-y-x. Unfortunately the order in which the angles are given and even the axes about which they are applied has never been “agreed” upon. When using Euler angles the order and the axes about which the rotations are applied should be supplied. [ Mathworld] does a good job describing this issue.

Euler angles are one of several ways of specifying the relative orientation of two such coordinate systems. Moreover, different authors may use different sets of angles to describe these orientations, or different names for the same angles. Therefore a discussion employing Euler angles should always be preceded by their definition.

Angle ranges

*α and γ range are defined moduloradians. A valid range could be [-π, π] .
*β range is modulo π radians. For example could be [0, π] or [-π/2, π/2] .

The angles α, β and γ are uniquely determined except for the singular case that the "xy" and the "XY" planes are identical, the z axis and the Z axis having the same or opposite directions. Indeed, if the z axis and the Z axis are the same, β = 0 and only (α+γ) is uniquely defined (not the individual values), and , similarly, if the z axis and the Z axis are opposite, β = π and only (α-γ) is uniquely defined (not the individual values). These ambiguities are known as gimbal lock in applications.

Matrix notation

Given the Euler angles scriptstyle{alpha}, scriptstyle{eta}, and scriptstyle{gamma}, using the z-x-z convention, a matrix can be constructed that transforms every vector of the given reference frame in the corresponding vector of the referred frame.

Define three sets of coordinate axes, called intermediate frames with their origin in common in such a way that each one of them differs from the previous frame in an elemental rotation, as if they were mounted on a gimbal. In these conditions, any target can be reached performing three simple rotations, because two first rotations determine the new Z axis and the third rotation will obtain all the orientation possibilities that this Z axis allows. These frames could also be defined statically using the reference frame, the referred frame and the line of nodes.

A matrix representing the end result of all three rotations is formed by successive multiplication of the matrices representing the three simple rotations, as in the equation

: [mathbf{R}] = egin{bmatrix}cos alpha & -sin alpha & 0 \sin alpha & cos alpha & 0 \0 & 0 & 1 end{bmatrix} egin{bmatrix}1 & 0 & 0 \0 & cos eta & -sin eta \0 & sin eta & cos eta end{bmatrix} egin{bmatrix}cos gamma & -sin gamma & 0 \sin gamma & cos gamma & 0 \0 & 0 & 1 end{bmatrix}


* The leftmost matrix represents a rotation around the axis ' z ' of the original reference frame
* The middle matrix represents a rotation around an intermediate ' x ' axis which is the "line of nodes".
* The rightmost matrix represents a rotation around the axis ' Z ' of the final reference frame

Carrying out the matrix multiplication, and abbreviating the sine and cosine functions as s and c, respectively, results in

: [mathbf{R}] = egin{bmatrix} mathrm{c}_alpha , mathrm{c}_gamma - mathrm{s}_alpha , mathrm{c}_eta , mathrm{s}_gamma &-mathrm{c}_alpha , mathrm{s}_gamma - mathrm{s}_alpha , mathrm{c}_eta , mathrm{c}_gamma & mathrm{s}_eta , mathrm{s}_alpha \ mathrm{s}_alpha , mathrm{c}_gamma + mathrm{c}_alpha , mathrm{c}_eta , mathrm{s}_gamma &-mathrm{s}_alpha , mathrm{s}_gamma + mathrm{c}_alpha , mathrm{c}_eta , mathrm{c}_gamma & -mathrm{s}_eta , mathrm{c}_alpha \ mathrm{s}_eta , mathrm{s}_gamma & mathrm{s}_eta , mathrm{c}_gamma & mathrm{c}_etaend{bmatrix}.

Other conventions

There are 12 possible conventions regarding the Euler angles in use. The above description works for the "z"-"x"-"z" form. Similar conventions are obtained by selecting different axes (zyz, xyx, xzx, yzy, yxy). There are six possible combinations of this kind, and all of them behave in an identical way to the one described before. The first convention (zxz) is sometimes known as Cardan angles or nautical angles, because their relationship with Cardan's gimbals.

A second kind of conventions is with the three rotation matrices with a different axis. "z"-"y"-"x" for example. There are also six possibilities of this kind. They behave slightly differently. In the zyx case, the two first rotations determine the line of nodes and the axis x, and the third rotation is around x.

Because their relationship with Tait-Bryan rotations, this second kind of convention sometimes are referred to as "yaw, pitch and roll", or Tait-Bryan angles, though usually this name is reserved for intrinsic angles in a referred frame.

Aviators and aerospace engineers, when using "yaw, pitch and roll" to refer to rotations about the referred (body) frame, often call these Euler angles. These rotations in moving frames are also known as Tait-Bryan rotations.

Table of matrices

The following matrices assume fixed (world) axes and column vectors, with rotations acting on objects rather than on reference frames. A matrix like that for xzy is constructed as a product of three matrices, Rot("y",θ3)Rot("z",θ2)Rot("x",θ1). To obtain a matrix for the same axis order but with referred frame (body) axes, use the matrix for yzx with θ1 and θ3 swapped. In the matrices, "c"1 represents cos(θ1), "s"1 represents sin(θ1), and similarly for the other subscripts.:

Relationship with physical motions

Euler rotations

Euler rotations are defined as the movement obtained by changing one of the Euler angles while leaving the other two constant. Euler rotations are never expressed in terms of the external frame, or in terms of the co-moving rotated body frame, but in a mixture. They constitute a mixed axes of rotation system, where the first angle moves the line of nodes around the external axis z, the second rotates around the line of nodes and the third one is an intrinsic rotation around an axis fixed in the body that moves.

These rotations are called Precession, Nutation, and intrinsic rotation and, at difference from other systems of rotations, they are commutative. The result is the same regardless of the order in which they are applied.

Euler angles as composition of Euler rotations

When these rotations are performed on a frame whose Euler angles are all zero, the rotating "XYZ" system starts coincident with the fixed "xyz" system. The first rotation is performed around "z" (which is parallel to "Z"), the second around the line of nodes "N" (which at this point is over "X"), and the third around "Z".

Other composition of movements equivalent

Assumed some initial conditions, the former definition can be seen as composition of three rotations around the intrinsic (moving) or extrinsic (fixed) axes.

Given two coordinate systems "xyz" and "XYZ" with common origin, starting with the axis z and Z overlapping, the position of the second can be specified in terms of the first using three rotations with angles α, β, γ in three ways equivalent to the former definition, as follows:

*Moving axes of rotation (See Tait-Bryan angles) The "XYZ" system is fixed while the "xyz" system rotates. Starting with the "xyz" system coinciding with the "XYZ" system, the same rotations as before can be performed using only rotations around the moving axis.
**Rotate the "xyz"-system about the "z"-axis by α. The "x"-axis now lies on the line of nodes.
**Rotate the "xyz"-system again about the now rotated "x"-axis by β. The "z"-axis is now in its final orientation, and the "X"-axis remains on the line of nodes.
**Rotate the "xyz"-system a third time about the new "z"-axis by γ.

*Fixed axes of rotation - The "xyz" system is fixed while the "XYZ" system rotates. Start with the rotating "XYZ" system coinciding with the fixed "xyz" system.
**Rotate the "XYZ"-system about the "z"-axis by γ. The "X"-axis is now at angle γ with respect to the "x"-axis.
**Rotate the "XYZ"-system again about the "x"-axis by β. The "Z"-axis is now at angle β with respect to the "z"-axis.
**Rotate the "XYZ"-system a third time about the "z"-axis by α. The first and third axes are identical.

*Equivalence of the movementsThe static description is usually used in conjunction with spherical trigonometry. It is the only form in older sources. The two rotating axes descriptions are usually used in conjunction with matrices, since 2D coordinate rotations have a simple form. These last two are equivalent, since rotation about a moved axis is the conjugation of the original rotation by the move in question.

To be explicit, in the fixed axes description, let "x"(φ) and "z"(φ) denote the rotations of angle φ about the "x"-axis and "z"-axis, respectively. In the moving axes description, let "Z"(φ)="z"(φ), "X"′(φ) be the rotation of angle φ about the once-rotated "X"-axis, and let "Z"″(φ) be the rotation of angle φ about the twice-rotated "Z"-axis. Then:

:"Z"″(α)o"X"′(β)o"Z"(γ) = [ ("X"′(β)"z"(γ)) o "z"(α) o ("X"′(β)"z"(γ))−1 ] o "X"′(β) o "z"(γ)
:::: = [ {"z"(γ)"x"(β)"z"(−γ) "z"(γ)} o "z"(α) o {"z"(−γ) "z"(γ)"x"(−β)"z"(−γ)} ] o [ "z"(γ)"x"(β)"z"(−γ) ] o "z"(γ)
:::: = "z"(γ)"x"(β)"z"(α)"x"(−β)"x"(β) = "z"(γ)"x"(β)"z"(α) .

The equivalence of the static description with the rotating axes descriptions can be verified by direct geometric construction, or by showing that the nine direction cosines (between the three "xyz" axes and the three "XYZ" axes) form the correct rotation matrix.

The equivalence of the static description with the rotating axes descriptions can be understood as external or internal composition of matrices. Composing rotations about fixed axes is to multiply our orientation matrix by the left. Composing rotations about the moving axes is to multiply the orientation matrix by the right.

Both methods will lead to the same final decomposition. If M = A.B.C is the orientation matrix (the components of the frame to be described in the reference frame), it can be reached from composing C, B and A at the left of I (identity, reference frame on itself), or composing A, B and C at the right of I. Both ways ABC is obtained.

Derivation of the Euler angles of a given frame

The fastest way to get the Euler Angles of a frame is to write the given three vectors as columns of a matrix and compare it with the expression of the theoretical matrix (see former table of matrices). From here the three Euler Angles can be calculated.

Nevertheless, the same result can be reached avoiding matrix calculus, which is more geometrical. Given a frame (X, Y, Z) expressed in coordinates of the reference frame (x, y, z), its Euler Angles can be calculated searching for the angles that rotate the unit vectors (x,y,z) to the unit vectors (X,Y,Z)

The inner product between the unit vectors z and Z is :langlehat{z}|hat{Z} angle=coseta and the cross product vector:ar{N}=hat{z} imes hat{Z} has the magnitude:|ar{N}|=sineta.

Therefore,:eta = operatorname{arg}( langlehat{z}|ar{Z} angle , |ar{N}| )where, in general, arg("u","v") is the polar argument of the vector ("u","v"), taking values in the range [-π < arg("u","v") < π] .

If scriptstyle{hat{z is parallel or antiparallel to scriptstyle{hat{Z (where "β"=0 or "β"=π, respectively), it is a singular case for which alpha and gamma not are individually defined. If this is not the case, scriptstyle{ar{N is non-zero and has the same direction as the unit vector scriptstyle{hat{N of the figure above. Therefore,

:alpha= operatorname{arg}( langlear{N}|hat{x} angle , langlear{N}|hat{y} angle ):gamma=-operatorname{arg}( langlear{N}|hat{X} angle , langlear{N}|hat{Y} angle ).

For the numerical computation of arg("u","v"), the standard function ATAN2(v,u) (or in double precision DATAN2(v,u)), available in the programming language FORTRAN for example, can be used. In case :hat{x} =(1,0,0):hat{y} =(0,1,0):hat{z} =(0,0,1)


:hat{X} =(X_1,X_2,X_3):hat{Y} =(Y_1,Y_2,Y_3):hat{Z} =(Z_1,Z_2,Z_3)

It can be calculated that:ar{N}=(-Z_2,Z_1,0)

and that

:langlear{N}|hat{x} angle = -Z_2:langlear{N}|hat{y} angle = Z_1

and that

:langlehat{z}|hat{Z} angle = Z_3:|ar{N}| = sqrtZ_1}^2 + {Z_2}^2}

and that

:langlear{N}|hat{X} angle = -Z_2 cdot X_1 + Z_1 cdot X_2 = Y_3:langlear{N}|hat{Y} angle = -Z_2 cdot Y_1 + Z_1 cdot Y_2 = -X_3.

In summary,

:alpha= operatorname{arg}( -Z_2 , Z_1 ):eta = operatorname{arg}( Z_3 , sqrtZ_1}^2 + {Z_2}^2} ):gamma=-operatorname{arg}( Y_3 , -X_3 ) = operatorname{arg}( Y_3 , X_3 ).

Properties of Euler angles

The Euler angles form a chart on all of SO(3), the special orthogonal group of rotations in 3D space. The chart is smooth except for a polar coordinate style singularity along β=0. See charts on SO(3) for a more complete treatment.

A similar three angle decomposition applies to SU(2), the special unitary group of rotations in complex 2D space, with the difference that β ranges from 0 to 2π. These are also called Euler angles.

Haar measure for Euler angles has the simple form sin(β)dαdβdγ,usually normalized by a factor of 1/8π².For example, to generate uniformly randomized orientations, let α and γ be uniform from 0 to 2π, let "z" be uniform from −1 to 1, and let β = arccos("z").


Euler angles are used extensively in the classical mechanics of rigid bodies, and in the quantum mechanics of angular momentum.

When studying rigid bodies, one calls the "xyz" system "space coordinates", and the "XYZ" system "body coordinates". The space coordinates are treated as unmoving, while the body coordinates are considered embedded in the moving body. Calculations involving kinetic energy are usually easiest in body coordinates, because then the moment of inertia tensor does not change in time. If one also diagonalizes the rigid body's moment of inertia tensor (with nine components, six of which are independent), then one has a set of coordinates (called the principal axes) in which the moment of inertia tensor has only three components.

The angular velocity, in body coordinates, of a rigid body takes a simple formusing Euler angles:

:(dotalphasinetasingamma+dotetacosgamma){old I} +(dotalphasinetacosgamma-dotetasingamma){old J} +(dotalphacoseta+dotgamma){old K},

where IJK are unit vectors for "XYZ".

Here the rotation sequence is 3-1-3 (or Z-X-Z using the convention stated above).

In quantum mechanics, explicit descriptions of the representations of "SO(3)" are very important for calculations, and almost all the work has been done using Euler angles. In the early history of quantum mechanics, when physicists and chemists had a sharply negative reaction towards abstract group theoretic methods (called the "Gruppenpest"), reliance on Euler angles was also essential for basic theoretical work.

Unit quaternions, also known as Euler-Rodrigues parameters, provide another mechanism for representing 3D rotations. This is equivalent to the special unitary group description.

Expressing rotations in 3D as unit quaternions instead of matrices has some advantages:
* Concatenating rotations is faster and more stable.
* Extracting the angle and axis of rotation is simpler.
* Interpolation is more straightforward. See for example slerp.

There is a common misconception that replacing the use of rotation matrices with quaternions will avoid gimbal lock, but this is not correct. Merely changing the representation of rotation transformation matrices with equivalent quaternion forms does not help with gimbal lock, because the problem lies in the logic and not the representation. However, the logic of interpolating between rotations is expressed with quaternions in such a way that a gimbal lock that might have occurred if straightforward Euler angles were used, is avoided.

See also

* Rotation representation
* Euler's rotation theorem
* Rotation matrix
* Quaternions
* Axis angle
* Conversion between quaternions and Euler angles
* Quaternions and spatial rotation
* Tait-Bryan angles
* Spherical coordinate system


* citation
last1= Biedenharn
first1= L. C.
last2= Louck
first2= J. D.
title= Angular Momentum in Quantum Physics
publisher= Addison-Wesley
place= Reading, MA
year= 1981
isbn= 978-0-201-13507-7

* citation
last1= Goldstein
first1= Herbert
author1-link= Herbert Goldstein
title= Classical Mechanics
edition= 2nd
publisher= Addison-Wesley
place= Reading, MA
year= 1980
isbn= 978-0-201-02918-5

* citation
last1= Gray
first1= Andrew
title= A Treatise on Gyrostatics and Rotational Motion
publisher= Macmillan
place= London
year= 1918
publication-date= 2007
isbn= 978-1-4212-5592-7

* citation
last1= Rose
first1= M. E.
title= Elementary Theory of Angular Momentum
publisher= John Wiley & Sons
place= New York, NY
year= 1957
publication-date= 1995
isbn= 978-0-486-68480-2

* citation
last1= Symon
first1= Keith
title= Mechanics
publisher= Addison-Wesley
place= Reading, MA
year= 1971
isnb= 978-0-201-07392-8

* citation
last1= Landau
first1= L.D.
author1-link=Lev Landau
last2= Lifshitz
first2= E. M.
author2-link= Evgeny Lifshitz
title= Mechanics
edition= 3rd
year= 1996
isbn= 978-0-7506-2896-9

External links

*MathWorld|urlname=EulerAngles|title=Euler Angles
* Java applet for the simulation of Euler angles available at
* - A collection of routines for rotation / orientation manipulation, including special tools for crystal orientations.

Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Conversion between quaternions and Euler angles — Spatial rotations in three dimensions can be parametrized using both Euler angles and unit quaternions. This article explains how to convert between the two representations. Actually this simple use of quaternions was first presented by Euler… …   Wikipedia

  • Euler's rotation theorem — In kinematics, Euler s rotation theorem states that, in three dimensional space, any displacement of a rigid body such that a point on the rigid body remains fixed, is equivalent to a rotation about a fixed axis through that point. The theorem is …   Wikipedia

  • Angles d'euler — Pour les articles homonymes, voir Euler. Le mouvement d un solide par rapport à un référentiel fait intervenir 6 paramètres, qui sont, par exemple, les trois coordonnées décrivant la position de son centre de masse (ou d un point quelconque du… …   Wikipédia en Français

  • Euler's disk — Euler s disk, named after Leonhard Euler, is a circular disk that spins, without slipping, on a surface. The canonical example is a coin spinning on a table. It is universally observed that a spinning Euler s disk ultimately comes to rest; and it …   Wikipedia

  • Angles d'Euler — Le mouvement d un solide par rapport à un référentiel fait intervenir 6 paramètres, qui sont, par exemple, les trois coordonnées décrivant la position de son centre de masse (ou d un point quelconque du solide) et trois angles, nommés les angles… …   Wikipédia en Français

  • Euler, Leonhard — born April 15, 1707, Basel, Switz. died Sept. 18, 1783, St. Petersburg, Russia Swiss mathematician. In 1733 he succeeded Daniel Bernoulli (see Bernoulli family) at the St. Petersburg Academy of Sciences. There he developed the theory of… …   Universalium

  • Euler — Leonhard Euler « Euler » redirige ici. Pour les autres significations, voir Euler (homonymie). Leonhard Euler …   Wikipédia en Français

  • Euler spiral — A double end Euler spiral. An Euler spiral is a curve whose curvature changes linearly with its curve length (the curvature of a circular curve is equal to the reciprocal of the radius). Euler spirals are also commonly referred to as spiros,… …   Wikipedia

  • Euler line — In geometry, the Euler line, named after Leonhard Euler, is a line determined from any triangle that is not equilateral; it passes through several important points determined from the triangle. In the image, the Euler line is shown in red. It… …   Wikipedia

  • Euler's three-body problem — In physics and astronomy, Euler s three body problem is to solve for the motion of a particle that is acted upon by the gravitational field of two other point masses that are either fixed in space or move in circular coplanar orbits about their… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”