gpt4 book ai didi

c++ - 给定相机和 View 平面的 2D 点的 3D 坐标

转载 作者:可可西里 更新时间:2023-11-01 18:39:20 25 4
gpt4 key购买 nike

我希望通过观察平面从相机生成光线。为了做到这一点,我需要我的相机位置(“眼睛”),向上,向右和朝向 vector (朝向是相机在相机正在看的物体方向上的 vector )和P,视平面上的点。一旦我有了这些,生成的光线就是:

ray = camera_eye + t*(P-camera_eye);

其中 t 是沿射线的距离(现在假设 t = 1)。

我的问题是,如果点 P 位于观察平面上的 (i,j) 位置,我如何获得它的 3D 坐标?假设给定视平面的左上角和右下角。

注意:从它不会在所有方向上无限延伸的意义上来说,观察平面实际上并不是一个平面。相反,人们可以将此平面视为宽 x 高图像。在 x 方向上,范围是 0--> 宽度,在 y 方向上,范围是 0--> 高度。我想找到第 (i,j) 个元素的 3D 坐标,0

最佳答案

直线与平面相交的一般解见http://local.wasp.uwa.edu.au/~pbourke/geometry/planeline/

您的特定图形库(OpenGL/DirectcX 等)可能有执行此操作的标准方法

编辑:您正试图在场景中找到屏幕点(例如鼠标光标)与 3d 对象的 3d 交点?

关于c++ - 给定相机和 View 平面的 2D 点的 3D 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2539088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com