相对于平面定位相机

Position camera relative to plane

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

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

谢谢!

您可以使用垂直于平面的向量计算相机的位置:

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 );