说我有一个摄像头放在:
{
x: 10,
y: 30,
z: 20
}
它的轮换是:
{
x: 0.1,
y: 0.2,
z: 0.3
}
我想将相机1个单元从它面向的方向移动到当前位置。
如何计算相机的新位置?
我正在使用ThreeJS。
答案 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