fix: event system
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
from time import sleep
|
||||
import matplotlib.pyplot as plt
|
||||
import matplotlib.image as mpimg
|
||||
from matplotlib.path import Path
|
||||
@@ -18,6 +19,7 @@ class TrajectoryDrawer:
|
||||
self.ax.set_title('Нарисуйте траекторию движения (кликните для точек, Enter для завершения)')
|
||||
self.ax.set_xlabel('X координата')
|
||||
self.ax.set_ylabel('Y координата')
|
||||
self.closed = False
|
||||
|
||||
# Подключение обработчиков событий
|
||||
self.fig.canvas.mpl_connect('button_press_event', self.on_click)
|
||||
@@ -50,7 +52,7 @@ class TrajectoryDrawer:
|
||||
self.line.set_data(x_coords, y_coords)
|
||||
self.fig.canvas.draw()
|
||||
|
||||
def complete_trajectory(self):
|
||||
def complete_trajectory(self, *args):
|
||||
if len(self.points) > 1:
|
||||
print("Траектория завершена!")
|
||||
print(f"Количество точек: {len(self.points)}")
|
||||
@@ -59,9 +61,8 @@ class TrajectoryDrawer:
|
||||
print(f"Точка {i+1}: ({x:.2f}, {y:.2f})")
|
||||
|
||||
# Можно сохранить координаты в файл
|
||||
# self.save_trajectory()
|
||||
self.on_complete_trajectory(self.points)
|
||||
self.destroy()
|
||||
self.closed = True
|
||||
|
||||
def clear_trajectory(self):
|
||||
self.points = []
|
||||
@@ -83,6 +84,10 @@ class TrajectoryDrawer:
|
||||
plt.tight_layout()
|
||||
plt.show()
|
||||
|
||||
def wait(self):
|
||||
while not self.closed:
|
||||
sleep(0.1)
|
||||
|
||||
# Использование
|
||||
if __name__ == "__main__":
|
||||
# Укажите путь к вашему изображению
|
||||
|
||||
Reference in New Issue
Block a user