【发布时间】:2016-12-06 13:35:22
【问题描述】:
我的目标是让一个对象像飞船一样控制,我的理解是我需要使用四元数来实现这个目标。首先,当我按下 A 键时,我试图让我的立方体开始向左旋转,这是代码:
if(controls.pressingA === true)
{
//var pLocal = new THREE.Vector3( 0, 0, -1 );
//var pWorld = pLocal.applyMatrix4( me.matrixWorld );
//var dir = pWorld.sub( me.position ).normalize();
var dir = me.getWorldDirection();
var quaternion = new THREE.Quaternion().setFromAxisAngle( dir, 0.05 );
me.rotation.setFromQuaternion( quaternion );
}
据我了解,me.getWorldDirection() 获取对象所面对的轴,然后我在之前获得的轴上创建四元数并将给定对象旋转 0.05 度,最后一行我只是将四元数应用于我的对象的代码。我遇到的问题是它不会增加旋转,它只是将我的对象设置为给定的旋转,我怎样才能让它增加旋转而不是设置它?
【问题讨论】:
-
在该轴和 + 0.05 上旋转(现在不知道代码
标签: javascript three.js rotation quaternions