如何迭代具有指定长度(例如单位长度)的d维的所有可能向量,其中delta是步长。
请注意,delta可以由相当小的,例如1e-3的单位向量。d通常在[0,5]的范围内,但这并不是很难的限制!愚蠢的方法是为delta*i使用一个i in [0,N)列表,并生成所有可能的组合,如n中的选择n,并选择那些与1相加的组合。但这似乎是相当低效的,我相信有更好的方法,我不知道。
我一直试图在半径为"inner_radius“的球面上生成点,这样它们就均匀地展开了。该算法在半径为1的情况下按预期工作,但对于较大半径生成的点数小于预期。我在这里看过类似的问题,但它们似乎是为了在整个体积中产生点,而不仅仅是在球体表面。PI=np.pi
def spherical_to_cartesian(pol_ang,azim_ang,radius): #This function converts given spherical coordinates (theta, phi and radius) to cartesian coord