如何2D网格点(X,Y)映射到球作为3D点(X,Y,Z)(how map 2d grid point

2019-06-18 11:20发布

我有一组我要地图/项目到球的三维点(X,Y,Z)2D网格点(X,Y)的。

我知道会有向两极一些扭曲的ABS(Y)增加,但我的网格补片将只包括在赤道附近的球如此严重扭曲将避免的一部分。

我无法找到的,正确的方程。

Answer 1:

从墨卡托投影维基百科的文章转述:

Given a "mapping sphere" of radius R,
the Mercator projection (x,y) of a given latitude and longitude is:
   x = R * longitude
   y = R * log( tan( (latitude + pi/2)/2 ) )

and the inverse mapping of a given map location (x,y) is:
  longitude = x / R
  latitude = 2 * atan(exp(y/R)) - pi/2

为了从逆映射的结果,3D坐标:

Given longitude and latitude on a sphere of radius S,
the 3D coordinates P = (P.x, P.y, P.z) are:
  P.x = S * cos(latitude) * cos(longitude)
  P.y = S * cos(latitude) * sin(longitude)
  P.z = S * sin(latitude)

(请注意,“地图半径”和“3D半径”将几乎肯定有不同的价值观,所以我使用了不同的变量名。)



Answer 2:

我想,你的(X,Y)的球体是纬度,经度。

如果是这样,看到http://tutorial.math.lamar.edu/Classes/CalcII/SphericalCoords.aspx 。

那里:

披= 90度 - 纬度

THETA =经度

RHO =你的球的半径。



Answer 3:

我希望,你可以使用任何一种地球投影的倒数。

相对于其他预测墨卡托是在赤道附近还不错。

公式是wiki页面上。
http://en.wikipedia.org/wiki/Mercator_projection



文章来源: how map 2d grid points (x,y) onto sphere as 3d points (x,y,z)