Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2187
  • 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?




0
ikework
Asked:
ikework
1 Solution
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

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