Jump to content

View more

Image of the Day

Inventory ! Va falloir trouver une autre couleur pour le cadre D: #AzTroScreenshot #screenshotsaturday https://t.co/PvxhGL7cOH
IOTD | Top Screenshots

The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.


Sign up now

Quaternion To Euler

4: Adsense

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.


  • You cannot reply to this topic
No replies to this topic

#1 Alundra   Members   

2279
Like
0Likes
Like

Posted 02 August 2014 - 10:23 AM

Hi all,

recently I have added a quaternion to euler to have a visual value of the quaternion but of course the value is not used in game.

Here the code I use :

void CQuaternion::ToEulerAngles( float* X, float* Y, float* Z ) const
{
  const float SingularityTest = x*y + z*w;
  if( SingularityTest > 0.4999995f )
  {
    *Y = 2.0f * CMath::ATan2( x, w );
    *Z = CMath::HALF_PI;
    *X = 0.0f;
  }
  else if( SingularityTest < -0.4999995f )
  {
    *Y = -2.0f * CMath::ATan2( x, w );
    *Z = -CMath::HALF_PI;
    *X = 0.0f;
  }
  else
  {
    const float zz = z * z;
    *Y = CMath::ATan2( 2.0f * (y*w - x*z), 1.0f - 2.0f * (y*y + zz) );
    *Z = CMath::ASin( 2.0f * SingularityTest );
    *X = CMath::ATan2( 2.0f * (x*w - y*z), 1.0f - 2.0f * (x*x + zz) );
  }
}

The code is based on this article :

http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/

Is it a correct way to do or a better way exists ?

Thanks for the help


Edited by Alundra, 14 December 2015 - 12:12 PM.





Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.