# zonnestand.py - zonnehoogte op het middaguur en de invalshoek op een schuin zonnepaneel
import math

BREEDTE = 51.0                     # breedtegraad van België (graden noorderbreedte)
DAGEN = {"21 maart": 80, "21 juni": 172, "21 september": 264, "21 december": 355}


def declinatie(dag):
    """Benadering van de declinatie van de zon (in graden) op dag 1 tot 365 van het jaar."""
    return -23.44 * math.cos(math.radians(360 / 365 * (dag + 10)))


for naam, dag in DAGEN.items():
    delta = declinatie(dag)
    hoogte = 90 - BREEDTE + delta                     # zonnehoogte op het middaguur (graden)
    regel = f"{naam:13s} declinatie {delta:6.1f}  zonnehoogte {hoogte:5.1f}"
    for kanteling in (39, 60):
        invalshoek = abs(90 - kanteling - hoogte)      # hoek tussen zonnestraal en normaal van het paneel
        factor = math.cos(math.radians(invalshoek))    # deel van de straling dat 'recht' invalt
        regel += f"  paneel {kanteling}: {factor:.2f}"
    print(regel)
