2017-05-27 11 views
0

btTransform :: getOpenGLMatrixが方向を変更しているようです。 xの記号が反転していますが、getOpenGLMatrixのドキュメントでこれについて何も見つかりません。は回転を変更するgetOpenGLMatrixですか?

auto t = btTransform(btQuaternion(0.7,0,0,0.7), bt(0,0,0)); 
glm::mat4 ogl_t; 
t.getOpenGLMatrix(glm::value_ptr(ogl_t)); 

glm::vec3 scale; 
glm::quat orientation; 
glm::vec3 translation; 
glm::vec3 skew; 
glm::vec4 perspective; 

glm::decompose(ogl_t,scale,orientation,translation,skew,perspective); // returns true 

assert(fabs(orientation.x - 0.7) < 0.02); // fails because x is -0.7 

答えて

0

それ同じ向きにすることができます。

のは、クォータニオンの定義[x y z w]を見てみましょう: -

// RotationAngle is in radians 
x = RotationAxis.x * sin(RotationAngle/2) 
y = RotationAxis.y * sin(RotationAngle/2) 
z = RotationAxis.z * sin(RotationAngle/2) 
w = cos(RotationAngle/2) 

例:[x=0.7,y=0,z=0,w=0.7][x=-0.7,y=0,z=0,w=-0.7]
と同じであるこのように、あなたの実験結果は、向きがであるという証拠はないがを変更しました。

続きを読む:

関連する問題