我一直在调查RagdollDemo并且在基础矩阵中使用setEulerZYX()的部分陷入困境。
transform.setIdentity();
transform.setOrigin(btVector3(btScalar(-0.35), btScalar(1.45), btScalar(0.)));
transform.getBasis().setEulerZYX(0,0,M_PI_2);
m_bodies[BODYPART_LEFT_UPPER_ARM] = localCreateRigidBody(btScalar(1.), offset*transform, m_shapes[BODYPART_LEFT_UPPER_ARM]);
我做了一些研究,但还不能完全理解这个函数究竟做了什么以及为什么需要它。任何帮助都会非常好。
答案 0 :(得分:1)
这是设置身体旋转的一种方式(还有其他方式)。
http://bulletphysics.org/Bullet/BulletFull/classbtMatrix3x3.html#a0acce3d3502e34b4f34efd275c140d2a
所以这是将其设置为0,0,M_PI_2
,M_PI_2
为Pi/2
表示这是x轴上旋转1/4圈,即90度。