如何在Python中生成球体坐标?
在Python中,如何生成在球面上的坐标呢?我知道球的方程是 x^2 + y^2 + z^2 = r^2
。但是,怎么写一个函数,让它可以根据一个大于1的整数 a
和半径 r
,返回一个包含 (x,y,z)
坐标的列表 lst
呢?这个列表需要满足以下条件:
len(lst) = a
- 所有相邻点之间的距离必须相同(也就是说,这些点之间的距离要一样)
- 每个点都要满足
x^2 + y^2 + z^2 = r^2
- 这个球的中心在
(0,0)
。
谢谢!
2 个回答
0
a = 12
r = 0.2
theta = np.radians(np.linspace(0, 360, a+1))
phi = np.radians(np.linspace(0, 360, a+1))
x = r * np.einsum("i,j->ij", np.cos(phi), np.sin(theta))
y = r * np.einsum("i,j->ij", np.sin(phi), np.sin(theta))
z = r * np.einsum("i,j->ij", np.ones(len(theta)), np.cos(theta))
xyz = np.array([x.flatten(), y.flatten(), z.flatten()])
这里唯一的问题是点的数量是 a 的平方。不过我想你可以根据需要来调整它。
0
可以去看看这个链接:http://www.faqs.org/faqs/graphics/algorithms-faq/,里面有第6.06节的内容。