Я работаю над проектом Lego Mindstorms, где мы создаем графический интерфейс, который можно использовать для управления роботом. Что мне нужно сделать, так это создать что-то, что будет показывать позицию робота после каждого движения. Я использую холст, на котором рисую прямоугольник, а затем точку, показывающую текущее положение робота. У меня есть целая куча кода, но я просто показываю вам его небольшой фрагмент, относящийся к моей проблеме.
from Tkinter import *
class App:
def __init__(self, master):
frame = Frame(master)
frame.pack()
self.button = Button(frame, text="Move", command=lambda: do_move())
self.button.pack(side=TOP)
self.canvas = Canvas(master, width=300, height=450)
self.canvas.place(x=250, y=550)
self.canvas.create_rectangle(0, 0, 300, 450, fill="white")
self.canvas.create_oval(150, 300, 160, 310, fill="blue", tags="Position")
x, y = self.canvas.coords("Position")
x = int(x)
y = int(y)
x2 = self.canvas.canvasx(self.x)
y2 = self.canvas.canvasy(self.y)
x2 = int(x2)
y2 = int(y2)
def move_forward():
self.canvas.move(Position, x2, y2)
def move_backwards():
self.canvas.move(Position, , )
root = Tk()
app = App(root)
root.title("Mindstorms GUI")
root.geometry("800x1200")
root.mainloop()
root.destroy()
Для функции перемещения, для которой у меня есть кнопка, я выбираю значение, и это значение будет перемещать робота вперед/назад. Когда робот переместился, я хочу также переместить свой синий кружок на холсте. X и Y — координаты текущего положения кругов, а остальные около X2 и Y2 взяты с другого сайта. Я не совсем уверен, почему вы должны писать x=int(x), и я действительно не понимаю части для X2 и Y2. Любые объяснения и предложения о том, как я могу написать остальную часть моего кода?
Первая новая функция, которую я определяю в конце, будет использоваться с моей кнопкой перемещения, так что у меня есть две команды для кнопки. Когда я нажимаю кнопку, круг Position также будет перемещен в новые координаты. Мне также нужно будет написать где-нибудь, что конкретное значение единицы измерения, которое я использую для своей функции перемещения, равно, например, перемещению по 5 координатам на моем холсте. Любые советы о том, как это сделать?
Надеюсь, вы поняли задачу и мои формулировки. Любая помощь приветствуется!