当前位置: 首页 > 面试题库 >

如何将相机安装到物体上

隆芷阳
2023-03-14
问题内容

使用three.js我有以下内容。

  • 包含多个Object3D实例的场景
  • 几个预html" target="_blank">定义的摄像机Vector3位置
  • 屏幕调整大小时画布的动态宽度/高度
  • 用户可以选择一个对象(从上方)
  • 用户可以选择相机位置(从上方)

给定正在查看的对象和摄像机位置,他们选择了如何计算最终摄像机位置以“最适合”屏幕上的对象?

如果在某些屏幕上按原样使用摄像机位置,则对象在我的视口边缘上流血,而其他对象看起来较小。我相信可以将物体安装到相机的视锥中,但找不到合适的东西。


问题答案:

我假设您正在使用透视相机。

您可以设置相机的位置和/或视野。

以下计算对于作为立方体的对象是准确的,因此请考虑对齐对象以面向相机的边界框。

如果摄像机居中并正视立方体,请定义

dist = distance from the camera to the _closest face_ of the cube

height = height of the cube.

如果您按照以下方式设置相机的视野

fov = 2 * Math.atan( height / ( 2 * dist ) ) * ( 180 / Math.PI ); // in degrees

那么立方体的高度将与可见高度匹配。

此时,您可以将相机倒退一点,或者稍微增加视野。

如果视场是固定的,则使用以上公式求解距离。

编辑:如果要使多维数据集width匹配可见 宽度aspect则将其设置为画布的纵横比(画布宽度除以画布高度),然后像这样设置相机的视场

fov = 2 * Math.atan( ( width / aspect ) / ( 2 * dist ) ) * ( 180 / Math.PI ); // in degrees

three.js r.69



 类似资料:
  • 我做错了什么?是不是漏了什么?

  • 我知道关于这个话题已经有了一些答案,但我不太清楚如何测量相机和物体之间的距离。 我的目标是: 我用OpenCV通过颜色检测成功地追踪了一个红色的球。现在我试着在红球的中间点一个激光。当红球移动时,激光器应始终跟随红球。我用一个小伺服电机来转动激光。 我在想,如果我能测量物体和相机之间的距离,我就能计算出伺服需要转动的角度。。。 我试图跟踪卡梅伦·洛厄尔·帕尔默的帖子。 我所做的: 我校准了我的Pi

  • 问题内容: 我正在使用ARCore和Sceneform进行Android AR项目。我需要把对象 从30米200米远 从用户的摄像头和面临的 视锥剔除 在ARCORE问题,说明这里。 我正在尝试使用此方法设置 投影矩阵 以增加参数 但是我找不到设置渲染投影矩阵的可能性。 这是我的代码: 方法包含注释。因此,我不确定是否应该使用它,并且可以保证它会起作用。 请提出建议,我是否可以通过其他方式做到这一

  • 我正在开发一个React Native软件包,以获取Android设备上摄像头的信息。问题是并不是所有的摄像机都出现了。 我的代码如下: 这段代码返回以下内容: 这表明它缺少REQUEST\u AVAILABLE\u CAPABILITIES\u LOGICAL\u MULTI\u摄像头。然而,我正在测试的手机有3个后摄像头和1个前摄像头。我错过了什么?

  • 产品类别:

  • 我真的需要帮助将pygame安装到PyCharm 2020.2中。。。我在turtle方面做得很好,现在我想转到pygame,但是当我导入pygame时,它说没有这样的模块。 我知道原因是我需要将模块安装到PyCharm中,但我不知道如何操作,也没有教程是最新的。 长问题短问题,如何将模块“Pygame”安装到PyCharm 2020.2中?