我目前正在three.js和cannon.js上做一些实验。
我有一个像这样的物体:
var ship = {
mesh: new THREE.Mesh(); //let's pretend there's a mesh in there.
rigidBody: new CANNON.RigidBody(); //let's pretend there's a rigid body in here.
};在更新函数中,我将网格旋转为刚体旋转,如下所示:
var update = function(){
ship.mesh.rotation.x = ship.rigidBody.quaternion.x;
ship.mesh.rotation.y = ship.rigidBody.quaternion.y;
ship.mesh.rotation.z = ship.rigidBody.quaternion.z;
};这一切都很好,问题是当我定义一个角速度时。
ship.rigidBody.angularVelocity.z = 1; //for example我估计物体会开始旋转,直到角速度达到0,但它只是来回摆动。有人能这样仁慈地解释一下为什么会发生这种情况吗?也许能给出一个保持物体旋转的解决方案吗?
发布于 2014-06-18 13:35:58
你应该这样做:
var update = function(){
ship.mesh.quaternion.x = ship.rigidBody.quaternion.x;
ship.mesh.quaternion.y = ship.rigidBody.quaternion.y;
ship.mesh.quaternion.z = ship.rigidBody.quaternion.z;
ship.mesh.quaternion.w = ship.rigidBody.quaternion.w;
};https://stackoverflow.com/questions/24285244
复制相似问题