def heatmap(self, source_x,source_y):
log.debug("Updating Heatmap.")
for tile in self.grid.values():
tile.value = sys.maxsize
tile.previous = None
tile.visited = False
l_open = []
source = self.lookup(source_x,source_y)
if source: l_open.append((0,source,source)) #(value,cell,previous)
while l_open:
value,cell,previous = heapq.heappop(l_open)
if cell.visited: continue
cell.visited = True
cell.previous = previous
cell.value = value
for x,y in self.get_neighbor_addrs(cell.x,cell.y):
c = self.lookup(x,y)
if c and not (c.visited or c.blocked):
heapq.heappush(l_open, (value+1, c, cell))
return self.render(0,self.width, 0,self.height,heatp=True)
评论列表
文章目录