0

一切都在标题中,我想在球体的表面上构建一个网格。做起来并不难,但我不知道它是否已经存在?

例如我这样做了:

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)

谢谢

4

1 回答 1

2

我认为没有任何东西可以做到这一点。但是,您可以摆脱 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)
于 2012-06-20T15:34:52.180 回答