-
Notifications
You must be signed in to change notification settings - Fork 0
/
map_plot.py
59 lines (43 loc) · 1.72 KB
/
map_plot.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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from cs1lib import *
from load_graph import load_graph
# The lower left corner of the window has a pixel value (0, 0) and the upper right corner has a pixel value (740, 380)
# The lower left corner of the map has a pixel value (10, 10) and the upper right corner has a pixel value (730, 370)
# I have added a padding of 10px either side for the map inside the window
WINDOW_WIDTH = 1012 # Width of the graphics window in pixels
WINDOW_HEIGHT = 811 # Height of the graphics window in pixels
MAP_WIDTH = 1012.0 # Map width in pixels
MAP_HEIGHT = 811.0 # Map height in pixels
def draw_red_vertex():
disable_stroke()
x = mouse_x()
y = mouse_y()
enable_fill()
set_fill_color(1, 0, 0)
draw_circle(x, y, 7)
enable_stroke()
def draw_map():
"""
Draws the map on the graphics window and plots the campus paths connecting various locations
:return: None
"""
img = load_image("dartmouth_map.png") # Load the image
vertex_dict = load_graph("dartmouth_graph.txt")
enable_smoothing()
draw_image(img, WINDOW_WIDTH/2, WINDOW_HEIGHT/2, MAP_WIDTH/2, MAP_HEIGHT/2)
for v in vertex_dict.values():
enable_fill()
v.draw_vertex(0, 0, 1)
for u in v.adjacent_vertices:
v.draw_edge(u, 0, 0, 1)
set_mouse_button_function(draw_red_vertex)
while not window_closed():
dest_x = mouse_x()
dest_y = mouse_y()
request_redraw()
def draw_window():
"""
Draws the graphics window and calls the draw_map function that draws the dartmouth map
:return: None
"""
start_graphics(draw_map, "World Map Showing Most Populated Cities", WINDOW_WIDTH, WINDOW_HEIGHT)
draw_window()