feat: add safe zone for text in confetti generation

This commit is contained in:
Paul Gauthier (aider) 2025-03-26 07:09:20 -10:00
parent a417e6e644
commit 9fa3636c57

View file

@ -48,9 +48,28 @@ def generate_confetti(count=150, width=DEFAULT_WIDTH, height=DEFAULT_HEIGHT):
confetti = []
colors = [AIDER_GREEN, AIDER_BLUE, GOLD_COLOR, "#e74c3c", "#9b59b6", "#3498db", "#2ecc71"]
for i in range(count):
# Define text safe zone - centered area where text will be displayed
safe_zone_x_min = width * 0.2
safe_zone_x_max = width * 0.8
safe_zone_y_min = height * 0.25
safe_zone_y_max = height * 0.75
# Keep trying until we have enough confetti pieces
attempts = 0
confetti_count = 0
while confetti_count < count and attempts < count * 3:
attempts += 1
# Generate random position
x = random.randint(0, width)
y = random.randint(0, height)
# Skip if the position is in the text safe zone
if (safe_zone_x_min < x < safe_zone_x_max) and (safe_zone_y_min < y < safe_zone_y_max):
continue
confetti_count += 1
size = random.randint(5, 15)
color = random.choice(colors)
rotation = random.randint(0, 360)