From 87eff61ae2c24b89575c797b23a9c86c8336e4a5 Mon Sep 17 00:00:00 2001 From: Stefan Harmuth Date: Thu, 28 Dec 2023 06:47:17 +0100 Subject: [PATCH] visualization.Window.realign(): scale to fit --- src/tools/visualization.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/tools/visualization.py b/src/tools/visualization.py index 223b495..30d2554 100644 --- a/src/tools/visualization.py +++ b/src/tools/visualization.py @@ -46,12 +46,15 @@ class Window: self._update_boundaries(line.start) self._update_boundaries(line.end) - def realign(self) -> None: - print(self.__boundary_box) + def realign(self, padding: int = 10) -> None: if self.__boundary_box[0] < 0: - self.__canvas.move(tk.ALL, abs(self.__boundary_box[0]) + 10, 0) + self.__canvas.move(tk.ALL, abs(self.__boundary_box[0]) + padding, 0) if self.__boundary_box[1] < 0: - self.__canvas.move(tk.ALL, 0, abs(self.__boundary_box[1]) + 10) + self.__canvas.move(tk.ALL, 0, abs(self.__boundary_box[1]) + padding) + dim_x = self.__boundary_box[2] - self.__boundary_box[0] + 2 * padding + dim_y = self.__boundary_box[3] - self.__boundary_box[1] + 2 * padding + scale = min(self.width / dim_x, self.height / dim_y) + self.__canvas.scale(tk.ALL, 0, 0, scale, scale) self.__canvas.update() def done(self) -> None: