给定相机的 3D 位置、相机的 3D 目标位置(相机指向的点)、距相机的远平面距离、视野和纵横比,如何计算远平面中的四个 3D 点?这应该可以通过基本的三角函数实现,但我没有得到准确的结果。
问问题
882 次
1 回答
0
它可能是 2D 中的基本触发,但问题在 3D 中更复杂一些。我没有给你一个具体的答案,但这可能会给你一些探索的途径。
粗略地说,步骤如下:
- 求像平面的方程
- 查找 FOV 半径
- 找到 FOV 圆的方程
- 找到对应于你的纵横比的那个圆圈上的四个点
该圆所在的平面可以通过一个点和法向量获得,然后允许您确定该圆在 3D 中的方程(点是相机的位置,向量是相机和目标)。
圆的半径可以通过以下关系确定,r = d tan(theta / 2)
其中 d 是相机和目标之间的距离,theta 是 FOV 角度,以度为单位。
可以根据半径和法向量定义该圆在 3D中的方程。
最后,您需要找到可以内接在该圆中的具有给定纵横比的矩形,您的四个点是矩形和圆的交点。
您还需要考虑相机是否可以倾斜或水平。这将改变点,但它们仍将位于同一个圆/平面上。
根据您的目标,如果相机始终位于 (0,0,0) 并与其中一个轴对齐(即目标位于其中一个轴上),则可能有助于简化问题。
于 2011-03-24T15:58:04.463 回答