Skip to contents

The rotation matrix R_AB is created based on 3 angles x, y and z about new axes (intrinsic) in the order x-y-z. 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 x about its x-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, codeT is rotated an angle z about its NEWEST z-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.


xyz2R(x, y, z)



Angle of rotation about new x axis (rad)


Angle of rotation about new y axis (rad)


Angle of rotation about new z axis (rad)


3x3 rotation matrix (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


xyz2R(rad(10), rad(20), rad(30))
#>            [,1]       [,2]       [,3]
#> [1,]  0.8137977 -0.4698463  0.3420201
#> [2,]  0.5438381  0.8231729 -0.1631759
#> [3,] -0.2048741  0.3187958  0.9254166