如何在 Bullet 物理引擎中对物体应用旋转?

3
我有旋转值(滚动、俯仰、偏航)。我想将这个旋转应用到一个物体上,但我不知道如何做。

@felipemaia - 我正在使用Bullet物理引擎进行3D刚体碰撞检测,我不想操纵弹道轨迹,我只需要用提供的旋转值旋转一个物体,比如一个盒子。 - Ricardo Sanchez
2
是的,同意。愚蠢确实是无价的。 - felipemaia
1个回答

4
最直接的方法是通过运动状态或直接设置来直接设置刚体的世界变换。要从滚转、俯仰和偏航中获取变换,您可以使用以下代码:
btRigidBody * rigidBody = //...
btTransform tr;
tr.setIdentity();
btQuaternion quat;
quat.setEuler(yaw,pitch,roll); //or quat.setEulerZYX depending on the ordering you want
tr.setRotation(quat);

rigidBody->setCenterOfMassTransform(tr);

使用btDefaultSerializer将世界保存到.bullet文件时,这种转换是否会被保存? - rraallvv
@rraallvv 我肯定期望刚体的变换会被序列化,所以除非我漏掉了什么(这是可能的,因为我已经有一段时间没有使用过bullet),是的。 - nonVirtualThunk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接