Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
3d 相对于平面定位相机_3d_Camera_Three.js_Position - Fatal编程技术网

3d 相对于平面定位相机

3d 相对于平面定位相机,3d,camera,three.js,position,3d,Camera,Three.js,Position,我有一个平面,它被定位在某个x,y,z位置,并且在3d空间中旋转。 我知道如何在设置相同的坐标和旋转的情况下将相机定位,但我想将相机放置在一定的距离。有人能告诉我这样做的公式吗?或者如果它存在一个three.js方法来实现图像中的结果 谢谢 可以使用垂直于平面的矢量计算相机的位置: camera_position = plane_position + distance_to_the_plane * plane_normal 或 将相机放置在平面的另一侧 之后,可以旋转摄影机,使其指向矢量:

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


谢谢

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

camera_position = plane_position + distance_to_the_plane * plane_normal

将相机放置在平面的另一侧

之后,可以旋转摄影机,使其指向矢量:

-plane_normal
使用相机对象的注视成员

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

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

非常感谢您的回答,我在three.js方面不太先进,所以如果您能给出实际的例子,那就太好了。例如,如果我有这样的平面:plane.x=100;平面y=400;平面z=500;平面旋转x=0.4;平面旋转y=0.1;平面旋转z=0.4;摄像机位置设置(0,0,0);相机。旋转。设置(0,0,0);实际上,我应该写些什么来规范化并将您向我解释的内容转换为代码?对不起,如果我听不懂,谢谢你非常感谢你的解释,它很有效!:)您认为也可以将其应用于css3d渲染div吗?
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 );