2011-03-24 92 views
2

给定相机的3D位置,相机的3D目标位置(相机指向的点),距相机的远平面距离,视野和纵横比,如何计算四个3D在远机上点?这应该是可能的基本三角,但我没有得到确切的正确结果。视锥体视觉

回答

0

它可能是2D中的基本触发器,但问题在3D中稍微复杂一些。我没有针对你的具体答案,但这可能会给你一些探索的途径。

Rougly,步骤如下:

  1. 找到像面
  2. 方程找到FOV半径
  3. 找到FOV圆的方程
  4. 查找四个点,位在与您的长宽比相对应的圆上

该圆所在的平面可以通过point and normal vector,然后允许您确定3D中该圆的方程(该点是相机的位置,矢量是相机和目标之间的线)。

圆的半径可以通过关系r = d tan(theta/2)来确定,其中d是相机和目标之间的距离,θ是以度为单位的FOV角度。

circle in 3D的公式可以根据半径和法向量来定义。

最后,你需要找到给定长宽比的矩形,可以是inscribed in that circle,你的四个点是矩形和圆的交点。

您还需要考虑相机是否可以倾斜或是否平整。这将改变点,但他们仍然躺在同一个圆/平面上。

根据您的目标,如果摄像机始终位于(0,0,0)并与其中一个轴对齐(即目标位于其中一个轴上),则可能有助于简化问题。