2

给定相机的 3D 位置、相机的 3D 目标位置(相机指向的点)、距相机的远平面距离、视野和纵横比,如何计算远平面中的四个 3D 点?这应该可以通过基本的三角函数实现,但我没有得到准确的结果。

4

1 回答 1

0

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

粗略地说,步骤如下:

  1. 求像平面的方程
  2. 查找 FOV 半径
  3. 找到 FOV 圆的方程
  4. 找到对应于你的纵横比的那个圆圈上的四个点

该圆所在的平面可以通过一个点和法向量获得,然后允许您确定该圆在 3D 中的方程(点是相机的位置,向量是相机和目标)。

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

可以根据半径和法向量定义该圆在 3D中的方程。

最后,您需要找到可以内接在该圆中的具有给定纵横比的矩形,您的四个点是矩形和圆的交点。

您还需要考虑相机是否可以倾斜或水平。这将改变点,但它们仍将位于同一个圆/平面上。

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

于 2011-03-24T15:58:04.463 回答