3

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

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

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

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

4

1 回答 1

2

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

于 2012-04-03T10:28:22.207 回答