MapControl 视野非线性
MapControl Field of View non linear
我在 UWP 项目上使用 MapControl,在表面上模拟虚拟相机。在 MapControl 周围,我有一组指示器,就像一把尺子,显示航向(方位角)和俯仰角(仰角)。
这是一张截图。
但我发现图像在 MapControl 的边缘有变形或拉伸。我的指示器仅在位于中心和边缘(水平和垂直方向)时准确。离这些点越远,偏移量越大。
这里有更多显示失真的图片(在太阳和月亮球体上非常明显):
相同的视野。只改变了场景的航向和俯仰。
我不能改变扭曲,因为它是 MapControl 渲染引擎的工作,但我能知道它是如何在垂直和水平方向上扭曲的吗?知道我必须添加到指标的百分位数偏移公式吗?
谢谢
您所描述的符合预期。地图控件使用标准的 3D 投影矩阵获取 3D 世界场景并将其投影到屏幕上的 2D 坐标中。这会在屏幕上产生 non-linear 缩放。参见这个 post 例如 Projection Matrix
对于物理相机的任何实际相机镜头也是如此。根据视野,您会在画面边缘出现失真,视野越宽,失真越大。
我在 UWP 项目上使用 MapControl,在表面上模拟虚拟相机。在 MapControl 周围,我有一组指示器,就像一把尺子,显示航向(方位角)和俯仰角(仰角)。
这是一张截图。
但我发现图像在 MapControl 的边缘有变形或拉伸。我的指示器仅在位于中心和边缘(水平和垂直方向)时准确。离这些点越远,偏移量越大。
这里有更多显示失真的图片(在太阳和月亮球体上非常明显):
我不能改变扭曲,因为它是 MapControl 渲染引擎的工作,但我能知道它是如何在垂直和水平方向上扭曲的吗?知道我必须添加到指标的百分位数偏移公式吗?
谢谢
您所描述的符合预期。地图控件使用标准的 3D 投影矩阵获取 3D 世界场景并将其投影到屏幕上的 2D 坐标中。这会在屏幕上产生 non-linear 缩放。参见这个 post 例如 Projection Matrix 对于物理相机的任何实际相机镜头也是如此。根据视野,您会在画面边缘出现失真,视野越宽,失真越大。