コード例 #1
0
// Routine to convert the Euler angle specifying a rotation to a quaternion. 
Quaternion eulerAnglesToQuaternion(EulerAngles e)
{
   float alpha, beta, gamma;
   Quaternion *q1, *q2, *q3;

   alpha = e.getAlpha(); beta = e.getBeta(); gamma = e.getGamma(); 

   q1 = new Quaternion( cos( (PI/180.0) * (alpha/2.0) ), sin( (PI/180.0) * (alpha/2.0) ), 0.0, 0.0 );
   q2 = new Quaternion( cos( (PI/180.0) * (beta/2.0) ), 0.0, sin( (PI/180.0) * (beta/2.0) ), 0.0 );
   q3 = new Quaternion( cos( (PI/180.0) * (gamma/2.0) ), 0.0, 0.0, sin( (PI/180.0) * (gamma/2.0) ) );

   return multiplyQuaternions( *q1, multiplyQuaternions(*q2, *q3) );
}