From 48828551730bca9a04fcd0ea9a4a16853e252914 Mon Sep 17 00:00:00 2001 From: TennesseeTrash Date: Tue, 30 Dec 2025 16:52:24 +0100 Subject: [PATCH] Limit selection to fitting colours, use builtin brightness --- dynamic.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/dynamic.py b/dynamic.py index abe0621..32c9ae6 100644 --- a/dynamic.py +++ b/dynamic.py @@ -6,23 +6,35 @@ import time from Library.tree import RGBXmasTree -BRIGHTNESS_MULTIPLIER = 0.15 +COLOURS = [ + (0.800, 0.000, 0.000), + (0.000, 0.627, 0.000), + (0.800, 0.667, 0.000), + (0.000, 0.600, 0.800), + (0.800, 0.800, 0.800), + (0.600, 0.000, 0.800), + (0.800, 0.400, 0.000), + (0.600, 0.702, 0.733), + (0.800, 0.000, 0.267), + (0.000, 0.533, 0.267), +] class Animation: def __init__(self): self.animation_steps = 50 self.progress = [random.randint(0, self.animation_steps) for i in range(25)] - self.colours = [(random.random(), random.random(), random.random()) for i in range(25)] + #self.colours = [(random.random(), random.random(), random.random()) for i in range(25)] + self.colours = [random.choice(COLOURS) for i in range(25)] self.pixels = [(0, 0, 0) for i in range(25)] def next(self): for i in range(len(self.progress)): self.progress[i] = (self.progress[i] + 1) % self.animation_steps if self.progress[i] == 0: - self.colours[i] = (random.random(), random.random(), random.random()) + #self.colours[i] = (random.random(), random.random(), random.random()) + self.colours[i] = random.choice(COLOURS) magnitude = math.sin(math.pi * (self.progress[i] / self.animation_steps)) - magnitude *= BRIGHTNESS_MULTIPLIER colour = self.colours[i] self.pixels[i] = (colour[0] * magnitude, colour[1] * magnitude, colour[2] * magnitude) @@ -34,10 +46,12 @@ if __name__ == "__main__": tree = RGBXmasTree() animation = Animation() + tree.brightness = 0.05 + try: while True: animation.next() animation.set_colours(tree) - time.sleep(0.5) + #time.sleep(0.25) finally: tree.off()