[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2175
  • Last Modified:

quaternion to euler-angles conversion

hey guys, im working with a quaternion-class to store and to handle my rotations, in that class
i have a conversion method to make a quaternion from eulers:

where eulers are given:
pitch -> rotation around x-axis
yaw -> rotation around y-axis
rool -> rotation around z-axis

the eulers where made with Y-rotation first, then X-rotation, then Z-rotation,
that's why the method has the suffix "YXZ", here it is:

void CQuaternion::MakeFromEulerYXZ( const CEulerAngles &rot )
      const float fltPitch2 = rot.GetPitch() * 0.5f;
      const float fltYaw2   = rot.GetYaw() * 0.5f;
      const float fltRoll2  = rot.GetRoll() * 0.5f;

      const float cosY2 = g_Math.Cosf( fltYaw2 );
      const float sinY2 = g_Math.Sinf( fltYaw2 );
      const float cosP2 = g_Math.Cosf( fltPitch2 );
      const float sinP2 = g_Math.Sinf( fltPitch2 );
      const float cosR2 = g_Math.Cosf( fltRoll2 );
      const float sinR2 = g_Math.Sinf( fltRoll2 );

      x = cosR2 * sinP2 * cosY2 + sinR2 * cosP2 * sinY2;
      y = cosR2 * cosP2 * sinY2 - sinR2 * sinP2 * cosY2;
      z = sinR2 * cosP2 * cosY2 - cosR2 * sinP2 * sinY2;
      w = cosR2 * cosP2 * cosY2 + sinR2 * sinP2 * sinY2;

now i need the reverse conversion, from quaternion to euler, which means
x,y,z,w are given and i need the eulers( pitch, yaw, roll)

any suggestions?

1 Solution

Featured Post

Prep for the ITIL® Foundation Certification Exam

December’s Course of the Month is now available! Enroll to learn ITIL® Foundation best practices for delivering IT services effectively and efficiently.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now