我正在写一个等距柱状 map 查看器,到目前为止我发现的所有东西都是关于投影、转换和逆的,这是最简单的部分。
我不想使用 OpenGL 或 DirectX 球体纹理解决方案,我想逐像素绘制图像。我遇到的唯一问题是观察者相机矩形的转换。
我的意思是,我有一个矩形,查看器通过它显示 map 上的等效像素。当观察者向上或向下或向左或向右看时,此 View 会发生变化,但变化不是线性的,即使在球坐标系中也是如此。由于矩形的尺寸在笛卡尔意义上应该保持不变,否则我们将产生变形。
谁能告诉我如何解决这个问题?我只需要一个好文档的链接,或者我从哪里开始的提示。提前致谢。
最佳答案
好吧,没人回答,我想通了。有两个“实用”的解决方案,第一个是使用四元数。您可以将 3d 矩形定义为 View ,然后使用四元数旋转它。之后,您可以扫描生成的矩形,并使用反向变换来获取 map 坐标。另一个对我来说似乎更快的解决方案是使用欧拉旋转矩阵。请注意使用 ArcTan2 而不是 ArcTan 函数,因为您需要 2*PI 覆盖。这就是我想要的!
关于math - 查看等距柱状图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9743017/