したがって、半径rが可変の2Dの円の中心点座標のランダム配列があります。特定の円が別の円と重なっているかどうかを判断する関数を作成する必要があります。明らかに、いずれかの次元でのそれらの分離が2r未満の場合、それらは重なります。これを行うための関数を作成しました:
def x_overlap(n,r):
radius_arr=array([2*r,2*r,2*r,2*r,2*r,2*r,2*r,2*r,2*r,2*r])
diff_in_x=x-x[n]
x_touch=radius_arr-diff_in_x
for item in x_touch:
if item<0:
return "disk of ” n “ index overlaps with disk of ” x_touch.index(item) “ index in x direction"
else:
return "no overlaps for disk of ” n “ index in x direction"
def y_overlap(n,r):
radius_arr=array([2*r,2*r,2*r,2*r,2*r,2*r,2*r,2*r,2*r,2*r])
diff_in_y=y-y[n]
y_touch=radius_arr-diff_in_y
for item in y_touch:
if item<0:
return "disk of “ n “ index overlaps with disk of ” y_touch.index(item) “ index in y direction"
else:
return "no overlaps for disk of “ n “ index in y direction"
def overlap(n,r):
return x_overlap(n,r) + " " + "and" + " " + y_overlap(n,r)
このコードでいくつか問題が発生しました。まず第一に、その非常に長いです。次に、関数を実行すると、nとy_touch.index(item)の参照がコンソールに表示されません。私が持っているコードの何が問題になっていますか?それを行うためのより良い方法はありますか?
ありがとうございました!