[504] | 1 | //////////////////////////////// |
---|
| 2 | // Classe Astro // |
---|
| 3 | // Franck RICHARD // |
---|
| 4 | // BAORadio // |
---|
| 5 | // franckrichard033@gmail.com // |
---|
| 6 | // juin 2011 // |
---|
| 7 | //////////////////////////////// |
---|
[490] | 8 | |
---|
| 9 | #ifndef Astro_class |
---|
| 10 | #define Astro_class |
---|
| 11 | |
---|
| 12 | #include "math.h" |
---|
[504] | 13 | #include "stdio.h" |
---|
| 14 | #include <iostream> |
---|
| 15 | #include <string.h> |
---|
| 16 | #include <sstream> |
---|
| 17 | #include <iomanip> |
---|
[490] | 18 | |
---|
[504] | 19 | using namespace std; |
---|
| 20 | |
---|
[490] | 21 | ////////////////////////////// |
---|
| 22 | // Constantes Mathématiques // |
---|
| 23 | ////////////////////////////// |
---|
| 24 | |
---|
| 25 | #define Pi 3.14159265358979323846264338327 |
---|
| 26 | #define Pidiv180 0.01745329251994329576923690768 |
---|
| 27 | #define N180divPi 57.2957795130823208767981548141 |
---|
| 28 | #define Pi2 6.28318530717958647692528676655 |
---|
| 29 | #define Pidiv2 1.57079632679489661923132169163 |
---|
| 30 | |
---|
[504] | 31 | #define gmax(A,B) ((A)>(B)?(A):(B)) |
---|
[490] | 32 | |
---|
[504] | 33 | #define gmin(A,B) ((A)<(B)?(A):(B)) |
---|
| 34 | |
---|
| 35 | |
---|
| 36 | struct Coordonnees |
---|
[490] | 37 | { |
---|
[504] | 38 | string ar; // Coordonnées horaires d'un objet |
---|
| 39 | string dec; |
---|
| 40 | }; |
---|
| 41 | |
---|
| 42 | class Astro |
---|
| 43 | { |
---|
[490] | 44 | public: |
---|
| 45 | Astro(); |
---|
| 46 | ~Astro(); |
---|
| 47 | |
---|
[504] | 48 | void DefinirDateHeure(double Annee, double Mois, double Jour, double Heu, double Min, double Sec); |
---|
| 49 | void DefinirPressionTemp(double P, double T); |
---|
| 50 | void DefinirLongitudeLatitude(double log, double lat); |
---|
[490] | 51 | double VerifAngle(double Angle); |
---|
[504] | 52 | double Arrondi(double a); |
---|
| 53 | string DHMS(double mema, bool HMS); |
---|
| 54 | void Azimut(double Ar, double De, double *azi, double *hau); |
---|
| 55 | void Precession(double *ar, double *de); |
---|
| 56 | void NutationEtoile(double *ar, double *de); |
---|
| 57 | void AberrationAnnuelle(double *ar, double *de); |
---|
| 58 | void CalculJJ(double Heure); |
---|
| 59 | double CalculJJ(double A, double M, double J, double Heure); |
---|
| 60 | void CalculTSL(); |
---|
| 61 | double RefractionAtmospherique(double ht); |
---|
| 62 | double CalculLongitudeSoleil(); |
---|
[490] | 63 | double TSL(double JJ,double HeureSiderale,double Longitude); |
---|
[504] | 64 | void Nutation(); |
---|
| 65 | void Obliquite(double JJ); |
---|
| 66 | void atms ( double rt, double tt, double dnt, double gamal, double r, |
---|
| 67 | double *dn, double *rdndr ); |
---|
| 68 | void atmt ( double robs, double tdkok, double alpha, double gamm2, |
---|
| 69 | double delm2, double c1, double c2, double c3, |
---|
| 70 | double c4, double c5, double c6, double r, |
---|
| 71 | double *t, double *dn, double *rdndr ); |
---|
| 72 | void slaRefro ( double zobs, double hm, double tdk, double pmb, |
---|
| 73 | double rh, double wl, double phi, double tlr, |
---|
| 74 | double eps, double *ref ); |
---|
| 75 | float slaRange(float angle ); |
---|
| 76 | double slaDrange(double angle ); |
---|
| 77 | void CalculARDecSoleil(Coordonnees *Soleil); |
---|
[490] | 78 | |
---|
[504] | 79 | |
---|
| 80 | double GetAnnee() { return Annee; } |
---|
| 81 | double GetMois() { return Mois; } |
---|
| 82 | double GetJour() { return Jour; } |
---|
| 83 | double GetHeure() { return Heure; } |
---|
| 84 | double GetMin() { return Min; } |
---|
| 85 | double GetSec() { return Sec; } |
---|
| 86 | double GetJJ() { return JJ; } |
---|
| 87 | |
---|
| 88 | |
---|
| 89 | |
---|
| 90 | |
---|
| 91 | private: |
---|
[490] | 92 | double Longitude; |
---|
| 93 | double Latitude; |
---|
| 94 | double JJ; |
---|
| 95 | double CorP; |
---|
| 96 | double CorEP; |
---|
| 97 | double Annee; |
---|
| 98 | double Mois; |
---|
| 99 | double Jour; |
---|
[504] | 100 | double Heure; |
---|
[490] | 101 | double Min; |
---|
| 102 | double Sec; |
---|
| 103 | double ep; |
---|
| 104 | double hs; |
---|
| 105 | double UTCP; |
---|
| 106 | double tsl; |
---|
[504] | 107 | double LongitudeSoleil; |
---|
| 108 | double Pression; |
---|
| 109 | double Temp; |
---|
[490] | 110 | }; |
---|
| 111 | |
---|
| 112 | |
---|
| 113 | #endif |
---|