precession.h
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:2k
源码类别:

OpenGL

开发平台:

Visual C++

  1. // precession.h
  2. //
  3. // Calculate precession angles for Earth.
  4. //
  5. // Copyright (C) 2008, the Celestia Development Team
  6. // Initial version by Chris Laurel, claurel@gmail.com
  7. //
  8. // This program is free software; you can redistribute it and/or
  9. // modify it under the terms of the GNU General Public License
  10. // as published by the Free Software Foundation; either version 2
  11. // of the License, or (at your option) any later version.
  12. namespace astro
  13. {
  14. // PA and QA are the location of the pole of the ecliptic of date
  15. // with respect to the fixed ecliptic of J2000.0
  16. struct EclipticPole
  17. {
  18.     double PA;
  19.     double QA;
  20. };
  21. // piA and PiA are angles that transform the J2000 ecliptic to the
  22. // ecliptic of date. They are related to the ecliptic pole coordinates
  23. // PA and QA:
  24. //   PA = sin(piA)*sin(PiA)
  25. //   QA = sin(piA)*cos(PiA)
  26. //
  27. // PiA is the angle along the J2000 ecliptic between the J2000 equinox
  28. // and the intersection of the J2000 ecliptic and ecliptic of date.
  29. struct EclipticAngles
  30. {
  31.     double piA;
  32.     double PiA;
  33. };
  34. // epsA is the angle between the ecliptic and mean equator of date. pA is the
  35. // general precession: the difference between angles L and PiA. L is the angle
  36. // along the mean ecliptic of date from the equinox of date to the
  37. // intersection of the J2000 ecliptic and ecliptic of date.
  38. struct PrecessionAngles
  39. {
  40.     double pA;     // precession
  41.     double epsA;   // obliquity
  42. };
  43. struct EquatorialPrecessionAngles
  44. {
  45.     double zetaA;
  46.     double zA;
  47.     double thetaA;
  48. };
  49. extern EclipticPole EclipticPrecession_P03LP(double T);
  50. extern PrecessionAngles PrecObliquity_P03LP(double T);
  51. extern EclipticPole EclipticPrecession_P03(double T);
  52. extern EclipticAngles EclipticPrecessionAngles_P03(double T);
  53. extern PrecessionAngles PrecObliquity_P03(double T);
  54. extern EquatorialPrecessionAngles EquatorialPrecessionAngles_P03(double T);
  55. };