2017-05-27 47 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]
因此,你的實驗結果不是證據表明,定向改變

瞭解更多: