【发布时间】:2014-05-20 17:54:44
【问题描述】:
在 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)为中心。
谢谢
【问题讨论】:
-
如果这些是唯一的要求,那么
lst = [(r * cos(i * step), r * sin(i * step), 0) for i in range(a)]对于任何非零step。但我有一种感觉,你需要一些不那么微不足道的东西。 -
"这些点应该是等距的":严格来说,这是不可能的,除了 4、6、8、12 或 20 个点。
-
@omega 这对于 a 的许多选择是可能的,但不是对所有的。你想要完成什么?如果你需要它来在 OpenGL 中设计一个球体,你实际上并不需要相等的距离。如果您需要在球坐标中进行数值积分,您还有其他要求,例如形成某种对称的点。
标签: python geometry computational-geometry