从起点到终点画一条线的代码不起作用

卫星

我正在编写用于导航地图的简单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。

奥利弗·W。

在您的函数中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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章