-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdraw.py
More file actions
83 lines (77 loc) · 1.83 KB
/
draw.py
File metadata and controls
83 lines (77 loc) · 1.83 KB
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
from display import *
from matrix import *
def draw_lines( matrix, screen, color ):
for x in range(0, len(matrix) - 1, 2):
draw_line(screen, matrix[x][0], matrix[x][1], matrix[x+1][0], matrix[x+1][1], color)
def add_edge( matrix, x0, y0, z0, x1, y1, z1 ):
add_point(matrix, x0, y0, z0)
add_point(matrix, x1, y1, z1)
def add_point( matrix, x, y, z=0 ):
add_matrix = [x, y, z, 1]
matrix.append(add_matrix)
def draw_line( screen, x0, y0, x1, y1, color ):
dx = x1 - x0
dy = y1 - y0
if dx + dy < 0:
dx = 0 - dx
dy = 0 - dy
tmp = x0
x0 = x1
x1 = tmp
tmp = y0
y0 = y1
y1 = tmp
if dx == 0:
y = y0
while y <= y1:
plot(screen, color, x0, y)
y = y + 1
elif dy == 0:
x = x0
while x <= x1:
plot(screen, color, x, y0)
x = x + 1
elif dy < 0:
d = 0
x = x0
y = y0
while x <= x1:
plot(screen, color, x, y)
if d > 0:
y = y - 1
d = d - dx
x = x + 1
d = d - dy
elif dx < 0:
d = 0
x = x0
y = y0
while y <= y1:
plot(screen, color, x, y)
if d > 0:
x = x - 1
d = d - dy
y = y + 1
d = d - dx
elif dx > dy:
d = 0
x = x0
y = y0
while x <= x1:
plot(screen, color, x, y)
if d > 0:
y = y + 1
d = d - dx
x = x + 1
d = d + dy
else:
d = 0
x = x0
y = y0
while y <= y1:
plot(screen, color, x, y)
if d > 0:
x = x + 1
d = d - dy
y = y + 1
d = d + dx