Skip to contents

The rotation matrix R_AB is created based on 3 angles z, y and x about new axes (intrinsic) in the order z-y-x. The angles (called Euler angles or Tait–Bryan angles) are defined by the following procedure of successive rotations:

  1. Given two arbitrary coordinate frames A and B, consider a temporary frame T that initially coincides with A. In order to make T align with B, we first rotate T an angle z about its z-axis (common axis for both A and T).

  2. Secondly, T is rotated an angle y about the NEW y-axis of T.

  3. Finally, T is rotated an angle x about its NEWEST x-axis. The final orientation of T now coincides with the orientation of B.

The signs of the angles are given by the directions of the axes and the right hand rule. Note that if A is a north-east-down frame and B is a body frame, we have that z=yaw, y=pitch and x=roll.


zyx2R(z, y, x)



Angle of rotation about new z axis


Angle of rotation about new y axis


Angle of rotation about new x axis


3x3 rotation matrix R_AB (direction cosine matrix) such that the relation between a vector v decomposed in A and B is given by: v_A = R_AB * v_B


Kenneth Gade A Nonsingular Horizontal Position Representation. The Journal of Navigation, Volume 63, Issue 03, pp 395-417, July 2010.

See also


zyx2R(rad(30), rad(20), rad(10))
#>            [,1]       [,2]       [,3]
#> [1,]  0.8137977 -0.4409696 0.37852231
#> [2,]  0.4698463  0.8825641 0.01802831
#> [3,] -0.3420201  0.1631759 0.92541658