@@ -29,9 +29,16 @@ def parse(instr: str) -> tuple[dict[str, list[coord.Coordinate]], tuple[int, int
29
29
30
30
def get_colour_for (n ):
31
31
return tuple (
32
- map (int , map (lambda x : x [0 ] - x [1 ], zip (lowest_colour , map (lambda x : x * n , colour_diffs ))))
32
+ map (
33
+ int ,
34
+ map (
35
+ lambda x : x [0 ] - x [1 ],
36
+ zip (lowest_colour , map (lambda x : x * n , colour_diffs )),
37
+ ),
38
+ )
33
39
)
34
40
41
+
35
42
scale_factor = 8
36
43
37
44
@@ -41,23 +48,25 @@ def get_highlight_for(n):
41
48
42
49
def generate_frame (i , base_img , highlight_locs , hc , sequence ) -> int :
43
50
for n in range (len (sequence )):
44
- s = sequence [:n + 1 ]
51
+ s = sequence [: n + 1 ]
45
52
img = base_img .copy ()
46
-
53
+
47
54
sl = len (s ) + 1
48
55
for j , p in enumerate (s ):
49
56
img .putpixel (p , get_colour_for ((j + 1 ) / sl ))
50
-
57
+
51
58
for h in highlight_locs :
52
59
img .putpixel (h , hc )
53
-
60
+
54
61
maxx , maxy = img .size
55
- img = img .resize ((maxx * scale_factor , maxy * scale_factor ), resample = Image .NEAREST )
62
+ img = img .resize (
63
+ (maxx * scale_factor , maxy * scale_factor ), resample = Image .NEAREST
64
+ )
56
65
img .save (f"frames/{ str (i ).zfill (5 )} .png" )
57
66
i += 1
58
67
return i
59
-
60
-
68
+
69
+
61
70
def update_base (base_img , add ):
62
71
for v in add :
63
72
base_img .putpixel (v , shadow_colour )
@@ -66,17 +75,17 @@ def update_base(base_img, add):
66
75
if __name__ == "__main__" :
67
76
inp = sys .stdin .read ().strip ()
68
77
(antenna_by_type , (max_x , max_y )) = parse (inp )
69
-
78
+
70
79
ns = list (sorted (antenna_by_type .keys ()))
71
80
nns = len (ns )
72
-
81
+
73
82
try :
74
83
os .makedirs ("frames" )
75
84
except FileExistsError :
76
85
pass
77
-
78
- base_img = Image .new ("RGB" , (max_x + 1 , max_y + 1 ), color = lowest_colour )
79
-
86
+
87
+ base_img = Image .new ("RGB" , (max_x + 1 , max_y + 1 ), color = lowest_colour )
88
+
80
89
i = 0
81
90
for antenna_type in tqdm (antenna_by_type ):
82
91
for (a , b ) in itertools .permutations (antenna_by_type [antenna_type ], 2 ):
@@ -101,6 +110,12 @@ def update_base(base_img, add):
101
110
this_iter .append ((x_cursor , y_cursor ))
102
111
x_cursor += diff .x
103
112
y_cursor += diff .y
104
-
105
- i = generate_frame (i , base_img , (a , b ), get_highlight_for (ns .index (antenna_type ) / nns ), this_iter )
113
+
114
+ i = generate_frame (
115
+ i ,
116
+ base_img ,
117
+ (a , b ),
118
+ get_highlight_for (ns .index (antenna_type ) / nns ),
119
+ this_iter ,
120
+ )
106
121
update_base (base_img , this_iter )
0 commit comments