def get_neighbors(self, pos, delta):
def _pos2coor(pos):
a, b = np.array(self.m)
x, y = pos
coor = a*x + b*y # an array
return tuple(coor)
def p_gen():
for x in range(self.width):
for y in range(self.length):
yield(x, y)
point = _pos2coor(pos)
# w = self.width
# l = self.length
coor_map = {p : _pos2coor(p) for p in p_gen()}
del coor_map[pos]
points = list(coor_map.values())
points_tree = cKDTree(points)
ind = points_tree.query_ball_point(point, delta)
neighbors = itemgetter(*ind)(list(coor_map.keys()))
return set(neighbors)
评论列表
文章目录