相机相对于飞机定位

时间:2015-01-24 07:00:56

标签: 3d camera three.js position

我有一个位于某个x,y,z位置的平面,它在3d空间中旋转。 我知道如何将相机定位在其位置,只需设置相同的坐标和旋转,但我想将相机放在一定距离。有人可以告诉我这样做的公式,或者它是否存在一个three.js方法来实现图像中的结果?

look at the image of the camera positioned in front of a rotated plane at a certain distance

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用垂直于平面的矢量计算摄像机的位置:

camera_position = plane_position + distance_to_the_plane * plane_normal

camera_position = plane_position - distance_to_the_plane * plane_normal

将相机放在飞机的另一侧。

之后,您可以旋转相机以指向矢量:

-plane_normal

使用相机对象的 lookAt 成员

这是您在评论中提出的程序:

var distance = 100; // for example

camera.position.copy( plane.normal ).multiplyScalar( distance ).add( plane.position );
var direction = new THREE.Vector3();
direction.copy( plane.normal ).negate();
camera.lookAt( direction );