我正在编写一个用于导航地图的简单python代码。 遍历地图后,我找到了起点和终点。 然后我想从起点到终点绘制一条线。
导航代码:
mymap2 = generateMap((20,20))
print mymap2
def find_start_goal():
for i in range(20):
for j in range(20):
if mymap2[[i],[j]] == -3:
print ("goal point Located Pos: [%d,%d]" % (j,i) )
goal1 = [j,i]
elif mymap2[[i],[j]] == -2:
print ("Star point Located Pos: [%d,%d]" % (j,i) )
start1 = [j,i]
else:
pass
return start1 , goal1
start1 , goal1 = find_start_goal()
print "start = ", start1
print "goal = ", goal1
path = [start1,goal1]
plotMap(mymap2,path)
plotMap
函数中用于绘制直线的代码:
plt.plot(path_[:][0], path_[:][1], color='red', linewidth=2.5)
问题是plt.plot
期望变量X
和Y
作为前两个参数,其中X
应该是一个元组:(x
来自起点,距离目标点x
,类似于该终点。
因此该行永远不会从起点到目标点。
那么plt.plot(pat_...)
中的问题是什么?
我正在使用numpy和matplotlib。
答案 0 :(得分:0)
在你的函数plotMap
中,写下:
path_ = zip(*path_)
就在您的绘图线之前(虽然我想在您的代码中有一些更好的地方可以做到这一点,但是没有看到它,我们无法就此提出建议。)
这将为您提供path_
的第一个元素中的起点和终点的x坐标以及第二个元素中的y坐标,就像plt.plot
期望的那样:
示例:
>>> begin = [0,0]
>>> end = [10,5]
>>> path = [begin, end]
>>> zip(*path)
[(0, 10), (0, 5)]