我的目标是让对象控件像宇宙飞船,我理解的是我需要使用四元数来实现这个目标。首先,当我按下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度的rad,最后是最后一个代码行我只是将tetternion应用于我的对象。我得到的问题是它没有增加旋转,它只是将我的对象设置为给定的旋转,我怎样才能使它增加旋转而不是设置?
答案 0 :(得分:0)
答案 1 :(得分:0)
如果你要设置所有这些,你可以这样做
mesh.rotation.set(9, 7, 3)