人工视界的正确翻译

Coc*_*ics 5 algorithm math 3d

我想画出一个人为的视野.视图的中心将代表完美的水平视图,滚动旋转水平线,俯仰向上或向下移动.

问题是:在给定俯仰角的情况下,将水平线向上或向下(俯仰)平移的正确计算是什么.

我的猜测是,这可能取决于人们假设的假设相机的FOV角度,因此这个角度需要是所寻求算法的一个因素.理想情况下,我会想出iPhone/iPad相机的这个角度,这样如果你将设备放在你面前并朝向地平线,人工地平线将与实际地平线对齐.

到目前为止,我一直在猜测偏移量,但我希望得到确切的公式.

n. *_* m. 3

尝试水平偏移/(屏幕高度/2)=tan(间距)/tan(垂直FOV/2)。

看图片,公式就出来了。

图片
(来源:zwibbler.com

更新我混淆了两个角度。一是摄像头的FOV角度,二是屏幕的可视角度。这是两件不同的事情。后者取决于观看距离。您可能必须估计这个距离,并调整放大倍率和/或焦距,以便屏幕上可见的物体与肉眼可见的相同物体具有相同的角度大小。(对于我的特定手机,如果用户将手机一直向前伸出,则在 5 倍变焦后,您需要将图像放大约 3 倍)。那么两个角度相同,公式就成立了。

如果您想引入放大功能(即屏幕上的对象与现实生活中的对象具有不同的尺寸),请将水平偏移乘以放大系数。

更新 2当考虑观看距离时,屏幕尺寸会抵消,并且偏移量会简单地变为viewing_distance*tan(pitch_angle)(单位放大倍数)。