我正在编写用于导航地图的简单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。
在您的函数中plotMap
,编写:
path_ = zip(*path_)
就在您的绘图线之前(尽管我想您的代码中有一些更好的地方可以执行此操作,但是如果没有看到它,我们就无法对此提出建议)。
path_
就像您plt.plot
期望的那样,这将在第一个元素中为您提供起点和终点的x坐标,在第二个元素中为您提供y坐标:
例子:
>>> begin = [0,0]
>>> end = [10,5]
>>> path = [begin, end]
>>> zip(*path)
[(0, 10), (0, 5)]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句