Grid 它是numpy或scipy中用于构建球形网格的工具吗?

Grid 它是numpy或scipy中用于构建球形网格的工具吗?,grid,scipy,Grid,Scipy,所有都在标题中,我想在球体的表面上建立一个网格。这不是很难做到,但我不知道它是否已经存在 例如,我这样做: import scipy as sp from scipy import pi, cos, sin d = 1.0 for theta in sp.linspace(0, pi, 20, endpoint = False): for phi in sp.linspace(0, 2. * pi, 20, endpoint = False): x = d * sin

所有都在标题中,我想在球体的表面上建立一个网格。这不是很难做到,但我不知道它是否已经存在

例如,我这样做:

import scipy as sp
from scipy import pi, cos, sin

d = 1.0

for theta in sp.linspace(0, pi, 20, endpoint = False):
    for phi in sp.linspace(0, 2. * pi, 20, endpoint = False):
        x = d * sin(theta) * cos(phi)
        y = d * sin(theta) * sin(phi)
        z = d * cos(theta)

谢谢

我想没有什么可以做这件事。不过,您可以去掉Python循环,这可能会大大加快速度,获得更高的点数

theta = numpy.linspace(0, numpy.pi, 20, endpoint=False)
phi = numpy.linspace(0, 2 * numpy.pi, 20, endpoint=False)
theta, phi = numpy.meshgrid(theta, phi)
d = 1.0
x = d * numpy.sin(theta) * numpy.cos(phi)
y = d * numpy.sin(theta) * numpy.sin(phi)
z = d * numpy.cos(theta)

告诉你,以后有人碰到这个。您可以通过以下方式转换和缩放上述内容:
(xs,ys,zs)=map(lambda p:p*r,(x,y,z))
xt=xs*x_中心``yt=ys*y_中心``zt=zs*z_中心