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