MapControl视场非线性

问题描述

我在UWP项目上使用MapControl来模拟表面上的虚拟相机。在MapControl周围,我有一组指示器,例如标尺,用于显示航向(方位角)和俯仰(高程)。

这是一个捕捉。

enter image description here

但是我已经意识到图像在MapControl的边缘存在扭曲或拉伸。我的指标仅在中心和边缘(水平和垂直)时才是准确的。当距离这些点较远时,偏移量就更大。

这里有更多图片显示了变形(在太阳和月球上非常明显):

Almost no distortion,only mild vertical distortion

相同的视野。仅更改了场景的方向和音高。

Visible distortion,both vertically and horizontally

我无法更改变形,因为它是MapControl渲染引擎的工作,但是我能知道它在垂直和水平方向上如何变形吗?知道公式,我必须添加到指标中的百分位偏移量吗?

谢谢

解决方法

您所描述的是预期的。地图控件使用标准的3D投影矩阵来拍摄3D世界场景并将其投影到屏幕上的2D坐标中。这会在整个屏幕上产生非线性缩放。参见此帖子,例如Projection Matrix 对于任何用于物理相机的实际相机镜头也是如此。根据视场的不同,您会朝着框架的边缘产生扭曲,而宽视场的扭曲会越来越大。