x
• Status: Solved
• Priority: Medium
• Security: Public
• Views: 2187

# 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
1 Solution

Commented:
0
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.