import cv2
import numpy as np
import math

IMAGE_WIDTH = 2544*2
IMAGE_HEIGHT = 2544

image = np.zeros((IMAGE_HEIGHT, IMAGE_WIDTH, 3), dtype=np.uint8)

def create_flare_image(radius, num_circles, circle_size):
    # Create black image
    
    # Calculate centers for the two main circles (one in each half)
    left_center = (IMAGE_WIDTH // 4, IMAGE_HEIGHT // 2)
    right_center = (3 * IMAGE_WIDTH // 4, IMAGE_HEIGHT // 2)
        
    # Draw circles in both halves
    for center in [left_center, right_center]:
        # Calculate positions for 5 equally spaced circles
        for i in range(num_circles):
            angle = i * (2 * math.pi / num_circles) + radius*0.1
            x = int(center[0] + radius * math.cos(angle))
            y = int(center[1] + radius * math.sin(angle))
            
            # Draw white circle
            cv2.circle(image, (x, y), circle_size, (255, 255, 255), -1)
    
    return image

if __name__ == '__main__':
    for i in range(0, IMAGE_HEIGHT//2, 200):
        image = create_flare_image(i, 5, 10)
    cv2.imwrite(f'test_images/flare_image_spacing.png', image)
    # cv2.imshow('Flare Image', cv2.resize(image, (IMAGE_WIDTH//5, IMAGE_HEIGHT//5)))
    # cv2.waitKey(0)
    # cv2.destroyAllWindows()