2014-11-29 1 views
0

지도를 탐색하기위한 간단한 파이썬 코드를 작성했습니다. 지도를 탐색 한 후 시작 지점과 끝 지점을 찾습니다. 그런 다음 시작점에서 끝점까지 선을 그립니다. 네비게이션시작 지점에서 목표 지점으로 선을 그리는 코드

번호 :

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 기대 변수 XY, X은 튜플이어야합니다 (시작점에서 x, 목표 지점에서 x). 마찬가지로 l의 끝점에 대해서도 너.

따라서 선은 시작점에서 목표점까지 절대로 존재하지 않습니다.

그럼 plt.plot(pat_...)의 문제는 무엇입니까?

numpy 및 matplotlib을 사용하고 있습니다. 함수 plotMap에서

+0

귀하의지도는 i, j입니다 만 귀하의 요점은 j, i입니다. 너가 원하는게 그거야? – stark

+0

예지도마다 조정했습니다 –

답변

0

, 쓰기 :

path_ = zip(*path_) 

을 당신의 플로팅 라인 전에 (I 추측하지만이 코드에서이 작업을 수행하는 몇 가지 좋은 장소이다, 그러나 그것을 보지 않고, 우리에 대한 권고를 할 수 없습니다 그).

path_의 첫 번째 요소로하면 시작과 끝점의 X 좌표를 제공하고 plt.plot 기대처럼, 두 번째 요소의 Y 좌표 :

예 :

>>> begin = [0,0] 
>>> end = [10,5] 
>>> path = [begin, end] 
>>> zip(*path) 
[(0, 10), (0, 5)] 
+0

고마워요! 그 :) –

관련 문제