查看Equirectangular Map

时间:2012-03-16 18:59:07

标签: math panoramas map-projections

我正在编写一个equirectangular地图查看器,到目前为止我发现的所有东西都是关于投影,转换和反转的,这是最简单的部分。

我不想使用OpenGL或DirectX球体纹理解决方案,我想逐像素地绘制图像。我唯一的问题是转换观众的相机矩形。

我的意思是,我有一个矩形,观察者通过该矩形显示地图上的等效像素。当观察者向上或向下或向左或向右看时,此视图会发生变化,但即使在球形协调系统中,变化也不是线性的。由于矩形的尺寸应该在笛卡尔意义上保持不变,否则我们将会发生变形。

谁能告诉我如何解决这个问题?一个好的文档的链接,或者我开始的地方的提示就是我所需要的。提前谢谢。

1 个答案:

答案 0 :(得分:2)

好的,没有人回答,我想出来了。有两个“实用”的解决方案,第一个是使用Quaternions。您可以将3d矩形定义为视图,然后使用四元数旋转它。之后,您可以扫描生成的矩形,并使用反向变换来获取地图坐标。对我来说似乎更快的另一个解决方案是使用Euler的旋转矩阵。只需注意使用ArcTan2而不是ArcTan功能,因为您需要2 * PI覆盖。这就是我想要的!