Я искал везде, но, похоже, у меня ничего не работает.Мой пример использования очень прост: у меня есть робот, который имеет позицию и ориентацию.Я хочу построить эту позицию и ориентацию на графике.Но я хочу, чтобы робот мог двигаться, поэтому каждый раз при шаге T (пусть T = 1 секунда) я хочу, чтобы график обновлялся со следующей позицией робота.
Способ реализации моегокод, я генерирую массив патчей, по одному для каждого колеса и один для тела робота.Затем я просто хочу, чтобы эти три патча отображались на графике.Я могу инициализировать патчи, но когда я пытаюсь перерисовать их, я не могу заставить график перерисовывать сам.
Я знаю, что это, вероятно, вопрос, на который уже дан ответ, но я не могу найти никакого решения, которое бы работало для моего конкретного кода.Пожалуйста, помогите!
def drawInitialize(self):
#show the board itself
x_lims = (0, self.width)
y_lims = (0, self.length)
self.fig = plt.figure(figsize=(5,5))
self.ax = self.fig.add_subplot(111, aspect='equal')
plt.xticks(np.arange(0, self.width+1, int(self.width/5)))
plt.yticks(np.arange(0, self.length+1, int(self.length/5)))
plt.xlim(x_lims)
plt.ylim(y_lims)
#print the robot (this works!)
robotPatch = self.getRobotPatch()
for i in range(len(robotPatch)):
self.ax.add_patch(robotPatch[i])
#self.ax.add_artist(robotPatch[i])
plt.show()
def draw(self):
self.ax.clear()
robotPatch = self.getRobotPatch()
for i in range(len(robotPatch)):
self.ax.add_patch(robotPatch[i])
plt.show() #THIS DOESNT WORK!!
#initialize the board, (this calls drawInitialize)
gb = GameBoard(500,750, Robot(300,450,1, wheel_radius=20, axel_length=85.0))
#this should rotate the robot and redraw it
for i in range(5):
gb.draw() # this SHOULD redraw the robot! but nothing happens
gb.robot.theta = gb.robot.theta + math.pi/2
time.sleep(1)