In the present version of Mathematica, there is a new command

EulerMatrix[{α, β, γ}])// MatrixForm

I read its document and I still don't understand it. For me, the result should be the inverse of EulerMatrix based on the same convention. See this.


Problem for me is, for the Euler rotation, we are rotating the coordinate system. (α, β, γ) is to describe rotations or relative orientations of orthogonal coordinate systems. I think the Euler rotation should be

  Dot[RotationMatrix[-γ, {0, 0, 1}],
      RotationMatrix[-β, {0, 1, 0}],
      RotationMatrix[-α, {0, 0, 1}]]// MatrixForm

RotationMatrix[α, {0, 0, 1}] is the rotation of α for z in counterclockwise and active way. But we are rotating the Z axis, which is equivalent to the passive transformation. So we use -α in RotationMatrix[-α, {0, 0, 1}]. This is consistent with the this.

  • $\begingroup$ In any case, the description "rotating α around the current z axis, then β around the current y axis, and then γ around the current z axis" in the docs seems to be off, since EulerMatrix[{α, β, γ}] == RotationMatrix[α, {0, 0, 1}].RotationMatrix[β, {0, 1, 0}].RotationMatrix[γ, {0, 0, 1}], which implies the reverse ordering. RollPitchYawMatrix[{α, β, γ}, {3, 2, 3}] seems to be the correct ordering. $\endgroup$ Commented Jun 29, 2016 at 2:29
  • 2
    $\begingroup$ @J.M.: I think the behavior is consistent with the documentation because it states rotating about the "current" axes, which I assume to mean the axes in the local frame (a.k.a. body frame), rather than the world axes which is what you are using. $\endgroup$
    – user484
    Commented Jun 29, 2016 at 2:31
  • $\begingroup$ @Rahul, I'm still confused. If "rotating α around the current z axis" is the first step, then one is looking at RotationMatrix[α, {0, 0, 1}] being applied first to the vectors being acted on, no? But the current definition applies it last. What am I missing here? $\endgroup$ Commented Jun 29, 2016 at 2:36
  • 1
    $\begingroup$ see the note about active vs passive rotations on the linked site and here en.wikipedia.org/wiki/Active_and_passive_transformation . I believe mathematica is giving the active form and the linked site the passive. In any case the mathematica description is weak "rotating α around"? surely we are not rotating α, rather rotating something "by" α. $\endgroup$
    – george2079
    Commented Jun 29, 2016 at 2:50
  • $\begingroup$ "active vs passive rotations" Ah right, that's what those things are called. Thanks @george2079! $\endgroup$
    – user484
    Commented Jun 29, 2016 at 2:59

1 Answer 1


To verify that the rotations happen the way they're supposed to according to the documentation for EulerMatrix, you could use the following Manipulate:

arrowAxes[arrowLength_: 1] := 
 Map[{Apply[RGBColor, #], Arrow[Tube[{-#, #}]]} &, 
  arrowLength IdentityMatrix[3]]

    EulerMatrix[{α, β, γ}]], arrowAxes[]}, 
  Background -> LightGray, Boxed -> False, 
  PlotLabel -> Framed[
   Row[{"α = ", α, ", β = ", β, ", γ = ", γ}]], LabelStyle -> Larger],
 {α, 0, Pi}, {β, 0, Pi}, {γ, 0, Pi}]

Mathematica graphics

  • $\begingroup$ what is arrowAxes ? It doesn't work for me. $\endgroup$
    – Orders
    Commented Jun 29, 2016 at 5:18
  • $\begingroup$ Sorry, I forgot to add that. Now it's in. $\endgroup$
    – Jens
    Commented Jun 29, 2016 at 5:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.