Précession des équinoxes

La période de référence est la date J2000.
Pour une précession simplifiée, le plan de l'écliptique est immobile sur la plage temporelle considérée, 
de -26000 à +26000 ans autour de J2000 et l'inclinaison de l'équateur sur l'écliptique (ε) est fixe.
On considère des objets sans mouvements propres.
Dans le référentiel écliptique, seule la longitude varie avec la précession.

Choisir une longitude et une latitude du point E à la période J2000.

En faisant varier le temps doucement, on constate :
- le point G (gamma) fait un tour complet en 26000 ans sur l'écliptique,
- la longitude de l'objet varie (précesse) de 360° en 26000 ans,
- l'ascension droite varie (précesse) aussi de 24h (360°),
- la déclinaison oscille avec une amplitude fonction de la latitude de l'objet.

Remarquer : 
- le cône décrit par l'axe polaire PP', autour de l'axe polaire de l'écliptique QQ'.

Afficher la trace du cône décrit

Pour effacer la trace, CTRL F.

    |
    |
2000

     Visualisations optionnelles     
  

 
 
 
 
 
 
 

Ecliptique (en vert)

Equateur (en bleu)

Coordonnées écliptiques

Coordonnées équatoriales

Cône de précession

Coord. équat. J2000

     |
    0

      |
-5000

       |
-10000

       |
-15000

       |
-20000

     |
5000

     |
10000

     |
15000

     |
20000

     |
25000

CRAL-Obs. Lyon, Ph Merlin, octobre 2016

lat_{2000} = 55.798 (slider from -90 to 90, step 0.001)
long_{2000} = 90 (slider from 0 to 360, step 0.001)
G_{2000}: (1, 0, 0)
L = Rotate(G_{2000}, long_{2000}°, zAxis)
C: (0, 0, 0)
E = Rotate(L, lat_{2000}°, OrthogonalLine[C, Line[C, L], xOyPlane])
Q': (0, 0, -1)
Q: (0, 0, 1)
ε: 23.45
P_0: (1; -90°; (90 - ε)°)
tps = 2000 (slider from -24000 to 28000, step 10)
PP: 26000
ω: (360 / PP * (tps - 2000))
P = Rotate(P_0, ω°, Line[Q, Q'])
P' = Mirror(P, C)
arcPol = Arc(Circle[P, E, P'], P, E)
Sph = Sphere((0, 0, 0), 1)
c_{eclp} = Circle((0, 0), 1)
Per: 26000
ceps = Translate(Circle[(0, 0), sin(ε°)], Vector[(0, 0, cos(ε°))])
G: (1; ((-ω))°)
a: (-x(G))
b: x(G)
d: x(G)
e: x(P)
f: x(G)
g: ((2 * π) * tps / Per)
axeP = Line(C, P)
c_{equat} = Circle((0, 0, 0), 1, axeP)
axeP2000 = Ray(C, P_0)
axeXX' = Segment((-1, 0), (1, 0))
ceps' = Translate(ceps, Vector[C, (0, 0, (-2 * cos(ε°)))])
α_d: (long_{2000} * 15)
arclong0 = Arc(c_{eclp}, G, L)
arcQE = CircleArc(C, E, L, xOyPlane)
sgE = Segment(C, E)
H_1, H = Intersect(c_{equat}, Circle[P, E, P'])
arcad = Arc(c_{equat}, G, H)
delt: 90 - (arcPol * 180 / π)
alpha: (arcad * 180 / π / 15)
long: (Arc[c_{eclp}, G, L] * 180 / π)
arclat0 = If(lat_{2000} > 0, CircleArc[C, L, E], CircleArc[C, L, E])
axeYY' = Segment((0, -1), (0, 1))
arcdel = If(delt  <  0, CircleArc[C, H, E], CircleArc[C, E, H])
sclong = CircleSector(C, G, L, xOyPlane)
axeZZ' = Segment((0, 0, -1), (0, 0, 1))
scad = CircleSector(C, G, H)
scdel = CircleSector(C, E, H)
fcone = false
sclat = CircleSector(C, E, L)
feclp = false
fequat = false
c'_{eclip} = Circle((0, 0), 1)
c'_{equat} = Circle((0, 0, 0), 1, axeP)
fcoordeclp = false
fcoordequat = false
fprecess = false
axeG = Rotate(Vector[(0, 0), (1.25, 0)], ((-ω))°, (0, 0))
G' = Mirror(G, C)
axeG' = Segment(C, G')
cdel = CircumcircleArc(P, E, P')
clat = CircumcircleArc(Q, E, Q')
c0_{equat} = Circle((0, 0, 0), 1, Ray[C, P_0])
fequat0 = false
cdel0 = CircumcircleArc(P_0, E, Mirror[P_0, C])
K_1, K_2 = Intersect(c0_{equat}, cdel0)
arcad0 = Arc(c0_{equat}, G_{2000}, K_2)
arcPol0 = Arc(Circle[P_0, E, Mirror[P, C]], P_0, E)
delt0: 90 - (arcPol0 * 180 / π)
arcdel0 = If(delt0  <  0, CircleArc[C, K_2, E], CircleArc[C, E, K_2])
axecone = Segment(P, P')
axecone2 = Segment(P, P')
texte1: " 
  long_{2000} = " + (floor(long_{2000})) + "° " + (floor(Mod[(long_{2000} * 60), 60])) + "' " + (Mod[(long_{2000} * 3600), 60]) + "''
  lat_{2000}    = " + (If[lat_{2000}  <  0, "-", "+"]) + "" + (floor(abs(lat_{2000}))) + "° " + (floor(Mod[(abs(lat_{2000}) * 60), 60])) + "' " + (Mod[(abs(lat_{2000}) * 3600), 60]) + "'' 
  long_{" + tps + "}  = " + (floor(long)) + "° " + (floor(Mod[(long * 60), 60])) + "' " + (Mod[(long * 3600), 60]) + "''
  
  α_{" + tps + "} = " + (floor(alpha)) + "h " + (floor(Mod[(alpha * 60), 60])) + "min " + (floor(Mod[(alpha * 3600), 60])) + "s  
  δ_{" + tps + "} = " + (If[delt  <  0, "-", "+"]) + "" + (floor(abs(delt))) + "° " + (floor(Mod[(abs(delt) * 60), 60])) + "' " + (floor(Mod[(abs(delt) * 3600), 60])) + "''
 "