2011-11-19 46 views
3

我有旋轉值(滾動,俯仰,偏航)。我想將該輪換應用到一個機構,但我不知道如何做到這一點。如何將旋轉應用於子彈物理引擎中的物體?

+0

@felipemaia - 我使用的子彈物理引擎爲3D剛體碰撞檢測,我不會試圖操縱的彈道,所有我需要的是旋轉身體讓我們說一個盒子提供的旋轉值 –

+2

是的。同意。愚蠢無疑是無價的。 – felipemaia

回答

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); 
+0

當通過使用btDefaultSerializer將世界保存到.bullet文件時,是否保存了此轉換? – rraallvv

+0

@rraallvv我一定會期望剛體的變換會被序列化,所以除非我錯過了一些東西(這可能,因爲我使用子彈已經有一段時間了),是的。 – nonVirtualThunk

+0

你是對的,謝謝 – rraallvv