的考慮點obstacles
(給定爲的row, column
矩陣座標,形狀(n, 2)
的ndarray列表)的列表,返回地圖大小size
(的其中size
是形狀2D NumPy數組),其中r, c
的值是距離最近「障礙物」的歐幾里德距離。計算最小距離的一個映射到多個點
def gen_distgrid(size, obstacles):
n_obstacles = obstacles.shape[0]
distgrids = np.zeros((n_obstacles + 4, size[0], size[1]))
for layer in range(n_obstacles):
for i in range(size[0]):
for j in range(size[1]):
distgrids[layer, i, j] = np.linalg.norm(obstacles[layer,:] - [i,j])
for i in range(size[0]):
for j in range(size[1]):
distgrids[n_obstacles + 0, i, j] = i
distgrids[n_obstacles + 1, i, j] = (size[0] - i)
distgrids[n_obstacles + 2, i, j] = j
distgrids[n_obstacles + 3, i, j] = (size[1] - j)
distgrid = np.min(distgrids, axis=0)
return distgrid
我的方法真的很慢,我覺得應該有更好的方法。
對不起,'r'和'c'是什麼? – mgilson
@mgilson:行和列,或者你可以說'i,j'。 –
因此,對於每個障礙物,您想知道哪個障礙物最接近? – mgilson