Javascript 如何使用相机角度移动相机?
我制作了一个简单的threeJS 3d应用程序,你可以在其中环顾四周,用4个键移动。问题是,无论你往哪里看,它都朝着同一个方向移动,这显然是因为我使用:Javascript 如何使用相机角度移动相机?,javascript,three.js,Javascript,Three.js,我制作了一个简单的threeJS 3d应用程序,你可以在其中环顾四周,用4个键移动。问题是,无论你往哪里看,它都朝着同一个方向移动,这显然是因为我使用: camera.position.x += 0.1 必须将默认位移(0.1,0,0)设置为矢量3,然后将摄影机的旋转(其四元数)应用于该矢量,然后再将其添加到其位置。请参阅下面的代码: //创建摄影机 var摄像机=新的三个透视摄像机(); //创建要重复使用的置换向量 var dispVector=new THREE.Vector3(); 函
camera.position.x += 0.1
必须将默认位移
(0.1,0,0)
设置为矢量3,然后将摄影机的旋转(其四元数)应用于该矢量,然后再将其添加到其位置。请参阅下面的代码:
//创建摄影机
var摄像机=新的三个透视摄像机();
//创建要重复使用的置换向量
var dispVector=new THREE.Vector3();
函数onRightKey(){
dispVector.set(0.1,0,0);//右键在x轴上移动0.1
applyDisplacement();
}
函数applyDisplacement(){
//我们将摄影机的旋转应用于位移向量
dispVector.applyQuaternion(摄影机.四元数);
//通过生成的位移向量移动摄影机位置
摄像机。位置。添加(dispVector);
}
您可以将同样的想法应用于其他键:(-0.1,0,0)
如果您想向左移动,或者(0,0.1,0)
如果您想向上移动,等等:
函数onLeftKey(){
dispVector.set(-0.1,0,0);//左键在x轴上移动-0.1
applyDisplacement();
}
函数onUpKey(){
设置(0,0.1,0);//左键在y轴上移动0.1
applyDisplacement();
}