【问题标题】:How to apply rotation to a body in Bullet Physics Engine?如何在子弹物理引擎中对身体应用旋转?
【发布时间】:2012-01-02 01:20:41
【问题描述】:

我有旋转值(滚动、俯仰、偏航)。我想将该旋转应用到一个身体,但我不知道该怎么做。

【问题讨论】:

  • @felipemaia - 我正在使用 Bullet Physics Engine 进行 3D 刚体碰撞检测,我不是在尝试操纵弹道轨迹,我所需要的只是旋转一个身体让我们说一个带有提供旋转值
  • 是的。同意。愚蠢确实是无价的。

标签: rotation physics-engine bullet bulletphysics


【解决方案1】:

最直接的方法是直接设置刚体的世界变换,通过运动状态或直接设置。要获得滚动、俯仰和偏航的变换,您可以使用:

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 我肯定希望刚体的变换会被序列化,所以除非我遗漏了什么(这是可能的,我已经有一段时间没有使用子弹了),是的。
猜你喜欢
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-12
  • 1970-01-01
  • 1970-01-01
  • 2015-07-04
相关资源
最近更新 更多