im fighting endlessly with quaternions...
Currently im using quaternions for Slerp interpolation around Y axis.
It works fine(angle from atan2()) except for 180 angles in place of 0 on X and Z.
The angle (0, 90, 0) always looks like (180, 90, 180) after converting to euler.
So i tried to test it out but it gets even worse...
simple example:
Code: Select all
core::vector3df angles(180.0f*core::DEGTORAD,90.f*core::DEGTORAD,45.f*core::DEGTORAD);
core::matrix4 m;
core::vector3df euler ;
float anglef=0;
m.setRotationRadians( angles);
core::quaternion find180(m);
find180.toEuler( euler );
find180.toAngleAxis(anglef ,core::vector3df(0,0,1));
anglef *= core::RADTODEG; //148.6002
euler = euler * core::RADTODEG;//-89,9999, 45.0000, 90.0000