2011-03-24 76 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)並與其中一個軸對齊(即目標位於其中一個軸上),則可能有助於簡化問題。