我对多重处理的经验为零,但我正在尝试将其应用于此功能。
def overlap_check(x,y,z,radius,N):
problematic=[]
for pair in combinations(range(N),2):
distance=sqrt((x[pair[0]]-x[pair[1]])**2+(y[pair[0]]-y[pair[1]])**2+(z[pair[0]]-z[pair[1]])**2)
if distance<2*radius:
problematic.append(pair[0])
return list(set(problematic))
为说明其作用,我基本上制作了N个半径为R的球体,它们随机分布在3D空间中。 (x,y,z)是中心坐标的列表。此功能通过比较所有球之间的距离(通过for循环)来检查相互重叠的球。如果存在重叠,则将球体保存为“有问题的”,然后将其转换为set()并返回到list()以消除任何重复。
我将不胜感激。