From 8f7d4b927826afbea8d98ef8a8b96f005f01b12a Mon Sep 17 00:00:00 2001 From: AKP Date: Sun, 8 Dec 2024 13:43:39 +0000 Subject: [PATCH] 2024.08 visualisation --- .../2024/08-resonantCollinearity/README.md | 4 +- .../08-resonantCollinearity/generate-vis.sh | 6 + .../2024/08-resonantCollinearity/out.mp4 | Bin 0 -> 118026 bytes .../2024/08-resonantCollinearity/vis.py | 106 ++++++++++++++++++ challenges/2024/README.md | 2 +- 5 files changed, 116 insertions(+), 2 deletions(-) create mode 100644 challenges/2024/08-resonantCollinearity/generate-vis.sh create mode 100644 challenges/2024/08-resonantCollinearity/out.mp4 create mode 100644 challenges/2024/08-resonantCollinearity/vis.py diff --git a/challenges/2024/08-resonantCollinearity/README.md b/challenges/2024/08-resonantCollinearity/README.md index 9414e3c..4c91cab 100644 --- a/challenges/2024/08-resonantCollinearity/README.md +++ b/challenges/2024/08-resonantCollinearity/README.md @@ -3,4 +3,6 @@ Part 1 is: * less than 298 -This is not a fully generic solution as, in a situation where the differences between x and y dimensions of pairs of coordinates are not coprime, this implementation would skip steps. \ No newline at end of file +This is not a fully generic solution as, in a situation where the differences between x and y dimensions of pairs of coordinates are not coprime, this implementation would skip steps. + +Visualisation exists as `out.mp4` diff --git a/challenges/2024/08-resonantCollinearity/generate-vis.sh b/challenges/2024/08-resonantCollinearity/generate-vis.sh new file mode 100644 index 0000000..c9a9f8b --- /dev/null +++ b/challenges/2024/08-resonantCollinearity/generate-vis.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -ex + +cat input.txt | PYTHONPATH=../../../ python3 vis.py +ffmpeg -y -framerate 30 -pattern_type glob -i 'frames/*.png' -c:v libx264 -pix_fmt yuv420p out.mp4 diff --git a/challenges/2024/08-resonantCollinearity/out.mp4 b/challenges/2024/08-resonantCollinearity/out.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..9cfec931d0e206d8ca7197085648e70c7f542242 GIT binary patch literal 118026 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

hR_&f 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%0ALNrDm$)vVC=YWJC0 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 literal 0 HcmV?d00001 diff --git a/challenges/2024/08-resonantCollinearity/vis.py b/challenges/2024/08-resonantCollinearity/vis.py new file mode 100644 index 0000000..19a4296 --- /dev/null +++ b/challenges/2024/08-resonantCollinearity/vis.py @@ -0,0 +1,106 @@ +import sys +from gridutil import grid, coord +from collections import defaultdict +import itertools +from fractions import Fraction +import os +from pathlib import Path +from PIL import Image +from tqdm import tqdm +from colorsys import hsv_to_rgb + + +def parse(instr: str) -> tuple[dict[str, list[coord.Coordinate]], tuple[int, int]]: + g = grid.parse(instr) + antenna_by_type = defaultdict(list) + for key in g: + if g[key] == ".": + continue + antenna_by_type[g[key]].append(key) + return antenna_by_type, (grid.get_max_x(g), grid.get_max_y(g)) + + +lowest_colour = (255, 245, 237) +highest_colour = (255, 159, 45) +highlight_colour = (255, 47, 47) +shadow_colour = (226, 218, 211) +colour_diffs = tuple(map(lambda x: x[1] - x[0], zip(highest_colour, lowest_colour))) + + +def get_colour_for(n): + return tuple( + map(int, map(lambda x: x[0] - x[1], zip(lowest_colour, map(lambda x: x * n, colour_diffs)))) + ) + +scale_factor = 8 + + +def get_highlight_for(n): + return tuple(map(lambda x: int(x * 255), hsv_to_rgb(n, 0.82, 1))) + + +def generate_frame(i, base_img, highlight_locs, hc, sequence) -> int: + for n in range(len(sequence)): + s = sequence[:n+1] + img = base_img.copy() + + sl = len(s) + 1 + for j, p in enumerate(s): + img.putpixel(p, get_colour_for((j + 1) / sl)) + + for h in highlight_locs: + img.putpixel(h, hc) + + maxx, maxy = img.size + img = img.resize((maxx * scale_factor, maxy * scale_factor), resample=Image.NEAREST) + img.save(f"frames/{str(i).zfill(5)}.png") + i += 1 + return i + + +def update_base(base_img, add): + for v in add: + base_img.putpixel(v, shadow_colour) + + +if __name__ == "__main__": + inp = sys.stdin.read().strip() + (antenna_by_type, (max_x, max_y)) = parse(inp) + + ns = list(sorted(antenna_by_type.keys())) + nns = len(ns) + + try: + os.makedirs("frames") + except FileExistsError: + pass + + base_img = Image.new("RGB", (max_x+1, max_y+1), color=lowest_colour) + + i = 0 + for antenna_type in tqdm(antenna_by_type): + for (a, b) in itertools.permutations(antenna_by_type[antenna_type], 2): + if ( + a.x > b.x + ): # filter out (most) duplicate pairs eg ((1, 2), (2, 1)) will only be calculated as ((2, 1), (1, 2)) will be filtered. This also prevents diff.x from being negative (useful for the mod operation) + continue + + this_iter = [] + + diff = coord.sub(b, a) + + m = Fraction( + diff.y, diff.x + ) # equiv of diff.y / diff.x but without the 26.9999999999996 issue + c = a.y - (m * a.x) + + x_cursor = a.x % diff.x + y_cursor = int((x_cursor * m) + c) + while x_cursor <= max_x: + if 0 <= y_cursor <= max_y: + this_iter.append((x_cursor, y_cursor)) + x_cursor += diff.x + y_cursor += diff.y + + i = generate_frame(i, base_img, (a, b), get_highlight_for(ns.index(antenna_type) / nns), this_iter) + update_base(base_img, this_iter) diff --git a/challenges/2024/README.md b/challenges/2024/README.md index 554a496..8ce0148 100644 --- a/challenges/2024/README.md +++ b/challenges/2024/README.md @@ -21,4 +21,4 @@ A day denoted with an asterisk means it has a visualisation. | 05 - Print Queue | ★ ★ | Python | Before you dismiss and idea as being "too simple", make sure you check that it doesn't work. | | 06 - Guard Gallivant | ★ ★ | Python | oh dear runtime (also I knew what I wanted to do for so long it just took me 3 hours to implement it properly) | | 07 - Bridge Repair | ★ ★ | Python | Maths? Backwards?? | -| 08 - Resonant Collinearity | ★ ★ | Python | `Fraction` saving us all from the curse of a computer's inability to do floating point arithmetic | \ No newline at end of file +| 08* - Resonant Collinearity | ★ ★ | Python | `Fraction` saving us all from the curse of a computer's inability to do floating point arithmetic | \ No newline at end of file