我想把一个网格映射到这样的球体上。
换句话说,对于每一个点 (x, y)
左边的∈[0,1],我需要的是 (x, y, z)
球体上等效点的坐标,在每条轴上的-45º和+45º经线之间。你也可以把源坐标看成是这样的两个角度。
phi = -45º + x * 90º
theta = -45º + y * 90º
传统的经纬度或极坐标公式我发现: 其他地方 是没有用的,因为 它们所产生的结果只是沿着一个轴线扭曲的。. 有其他建议吗?
定义两个函数。a
和 b
将你的x和y坐标映射到相应的θ和phi角。
a(x) = (pi / 4) * (2x - 1)
b(y) = (pi / 4) * (4y + 1)
然后只要 映射出球面坐标 回到笛卡尔坐标。
你会得到一个函数r,x',y',成员为[0,1] x [0,1],它将把二维坐标映射到一个半径为r的球体上。