-
Notifications
You must be signed in to change notification settings - Fork 0
/
graphics.py
39 lines (31 loc) · 1.05 KB
/
graphics.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from tkinter import Tk, BOTH, Canvas
class Window:
def __init__(self, height, width):
self._root = Tk()
self._root.title("Maze Generator")
self._root.protocol("WM_DELETE_WINDOW", self.close)
self._canvas = Canvas(self._root, height=height, width=width, bg="white")
self._canvas.pack(expand=1, fill=BOTH)
self._running = False
def redraw(self):
self._root.update_idletasks()
self._root.update()
def wait_for_close(self):
self._running = True
while self._running:
self.redraw()
def close(self):
self._running = False
def draw_line(self, line, fill_color):
line.draw(self._canvas, fill_color)
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
class Line:
def __init__(self, p1, p2):
self.p1 = p1
self.p2 = p2
def draw(self, canvas, fill_color):
canvas.create_line(self.p1.x, self.p1.y, self.p2.x, self.p2.y, fill=fill_color, width=2)
canvas.pack(expand=1, fill=BOTH)