# -*- coding:Utf-8 -*-
'''
    Distance angulaire entre deux astres
    Formulaire d'après J. Meeus : "Calculs astronomiques à l'usage des amateurs"
    édité par la S.A.F. en 1986
    Chapitre 8. Pages 37 et 38     
'''
from math import  pi, cos, acos, sin

""" coordonnées  d'Arcturus et de Spica de la Vierge
    pour lannée de référence 1950
"""
delta1 = (19. + (26. / 60) + (31. / 3600))   # 19 h 26 mn 31 secondes
delta2 = (10. + (54./60) + (3./3600)) * -1.0 # - 10 h 54 mn 3 secondes
alpha1 = (14. * 15) + (13. * 15 / 60) + (22.8 * 15 / 3600) # 14 h 13 mn 22.8 sec
alpha2 = (13. * 15) + (22. * 15 / 60) + (33.3 * 15 / 3600) # 13 h 22 mn 33.3 sec
print("Séparation angulaire entre Arcturus et Spica")
print("coordonnées pour Arcturus")
print(" delta1  {} degrés décimaux".format(delta1))
""" delta1 19.4419444444 en degrés """
print(" alpha1 {} degrés décimaux ".format(alpha1))
""" 213.345 en degrés  """
print("coordonnées pour Spica")
print(" delta2 {} degrés décimaux ".format(delta2))
""" -10.9008333333 en degrés  """
print(" alpha2 {} degrés décimaux".format(alpha2))
""" alpha2 200.63875 en degrés """

"""  conversions en radians :
    les fonction trigonométriques ne fonctionnent que sur
    des valeurs en radians
    angle en radians = angle en degrés x pi / 180
"""
delta1 = delta1 * pi / 180
delta2 = delta2 * pi / 180
alpha1 = alpha1 * pi / 180
alpha2 = alpha2 * pi / 180
""" On decompose le calcul en deux termes
    premier terme =
    sinus de delta1 x sinus de delta2 """
premier_terme = sin(delta1) * sin(delta2)
""" second terme =
    cosinus de delta1 x cosinus de delta2  x cosinus de (alpha1 -alpha2)
"""
second_terme  = cos(delta1) * cos(delta2) * cos(alpha1 - alpha2)
cosdistance = premier_terme + second_terme

print(" ---- résultats ----")
print(" cosinus de la distance  : {}  ".format(cosdistance))
""" cosinus de la distance  : 0.840342278009 """
raddistance = acos(cosdistance) # valeur en radians
print(" distance angulaire      : {} radians ".format(raddistance))
""" distance angulaire      : 0.572881969305 radians """
print(" distance angulaire      : {} degrés décimaux".format(raddistance * 180 / pi))
""" distance angulaire      : 32.8237190003 degrés décimaux """


