-
Notifications
You must be signed in to change notification settings - Fork 1
/
contact_point.py
66 lines (48 loc) · 2.11 KB
/
contact_point.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
60
61
62
63
64
65
66
# Import pygame into our program
import pygame
import pygame.freetype
from helpers import *
grid_base = (80, 560)
grid_divs = 80
grid_center = (320, 320)
def convert_coord(x,y):
global grid_center
global grid_divs
return (grid_center[0] + x * grid_divs, grid_center[1] - y * grid_divs)
# Define a main function, just to keep things nice and tidy
def main():
global grid_base
global grid_divs
# Initialize pygame, with the default parameters
pygame.init()
# Define the size/resolution of our window
res = (640, 640)
# Create a window and a display surface
screen = pygame.display.set_mode(res)
# Load a font
axis_labels_font = pygame.freetype.Font("NotoSans-Regular.ttf", 12)
vector_labels_font = pygame.freetype.Font("NotoSans-Regular.ttf", 24)
# Game loop, runs forever
while (True):
# Process OS events
for event in pygame.event.get():
# Checks if the user closed the window
if (event.type == pygame.QUIT):
# Exits the application immediately
exit()
# Clears the screen with a very dark blue (0, 0, 20)
screen.fill((0,0,20))
# Draw grid
draw_grid(screen, grid_base[0], grid_base[1], grid_divs, 6, 6, 5, (64, 64, 0, 255), axis_labels_font, [str(i) for i in range(-3, 4)], [str(i) for i in range(-3, 4)])
pygame.draw.circle(screen, (255, 255, 0, 255), convert_coord(-1,-1), 160, 2)
x,y = convert_coord(-1 + math.sqrt(2), -1 + math.sqrt(2))
x = int(x)
y = int(y)
draw_point(screen, (0, 255, 0, 255), (x,y), 5, axis_labels_font, "c", 10)
x,y = convert_coord(-1 + math.sqrt(2), -1 + math.sqrt(2))
draw_vector(screen, (0, 255, 255, 255), (x,y), (x + 80 * math.sqrt(2)/2, y + 80 * math.sqrt(2)/2), 2, vector_labels_font, "t", 12)
draw_vector(screen, (255, 0, 0, 255), (x,y), (x + 80 * math.sqrt(2)/2, y - 80 * math.sqrt(2)/2), 2, vector_labels_font, "n", -12)
# Swaps the back and front buffer, effectively displaying what we rendered
pygame.display.flip()
# Run the main function
main()