我有一个位于某个x,y,z位置的平面,它在3d空间中旋转。 我知道如何将相机定位在其位置,只需设置相同的坐标和旋转,但我想将相机放在一定距离。有人可以告诉我这样做的公式,或者它是否存在一个three.js方法来实现图像中的结果?
look at the image of the camera positioned in front of a rotated plane at a certain distance
谢谢!
答案 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 );