1

我有一个坐标为 x,y 的相机,高度为 h,它以特定的角度看 xy 平面,具有特定的视野。我想计算相机在飞机上可以看到的 4 个角。

可能有某种公式,但我似乎无法在谷歌上找到它。

编辑:我可能应该提到我的意思是 3D 图形意义上的相机。具体来说,我正在使用 XNA。

4

2 回答 2

0

忽略镜头畸变并假设镜头几乎在焦点处,那么您只有一个由传感器尺寸和镜头形成的三角形,然后是镜头到主体 - 类似的三角形可以为您提供主体平面的大小。

如果你想要一个倾斜的物体平面,它只是垂直物体平面上的投影

于 2012-04-09T00:28:27.950 回答
0

我不得不做类似的事情来调试 3D 游戏中的图形代码。我发现考虑它的最简单方法是创建表示屏幕角的向量,然后计算与任何相关对象(在本例中为平面)的交集。

看看您的视图投影(或任何您的相机矩阵堆栈看起来像相乘的东西)并意识到它们输出到的屏幕空间具有同质化坐标的角(-1, -1), (-1, 1), (1, -1), (1, 1)。知道了这一点,您就剩下一个自由变量,并且可以求解表示相机角的向量。

虽然,这是一种痛苦。为每个角构造一个向量要容易得多,就好像相机没有旋转或平移一样,然后通过视图矩阵对其进行转换以提供世界空间向量。然后你可以计算向量和平面之间的交点来得到你的四个角。

我有一份日常工作,所以我把数学留给你。但是,一些可能对此有所帮助的链接:

角度/视野计算

线平面交点

于 2012-04-09T20:53:18.480 回答