使用ThreeJS朝相机方向移动相机

时间:2016-06-27 11:20:09

标签: javascript vector three.js

说我有一个摄像头放在:

{
  x: 10,
  y: 30,
  z: 20
}

它的轮换是:

{
  x: 0.1,
  y: 0.2,
  z: 0.3
}

我想将相机1个单元从它面向的方向移动到当前位置。

如何计算相机的新位置?

我正在使用ThreeJS。

2 个答案:

答案 0 :(得分:6)

您可以使用the getWorldDirection method from the THREE.Camera class获取相机方向:

  

它返回一个向量,表示相机在世界空间中的方向。

如果你有这个direction矢量,你可以用它来向所需的方向移动相机:

var direction = new THREE.Vector3();
camera.getWorldDirection( direction );

只需向该方向移动1即可:

camera.position.add( direction );

如果你想移动更多,你可以使用the multiplyScalar method from the THREE.Vector3 class并乘以所需的距离。

distance = 10;
camera.position.add( direction.multiplyScalar(distance) );

答案 1 :(得分:3)

相机俯视其局部负z轴。因此,要沿相对的方向移动相机,请使用以下方法:

camera.translateZ( - distance );

这是最有效的方法。

three.js r.78