kstars
kspluto.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <math.h>
00019
00020 #include <qfile.h>
00021 #include <kdebug.h>
00022
00023 #include "kspluto.h"
00024 #include "ksutils.h"
00025 #include "ksnumbers.h"
00026
00027 #ifdef B0
00028
00029 #undef B0
00030 #endif
00031
00032 KSPluto::KSPluto(KStarsData *kd, QString fn, double pSize )
00033 : KSAsteroid( kd, I18N_NOOP( "Pluto" ), fn, J2000,
00034 39.48168677, 0.24880766, dms(17.14175), dms(113.76329),
00035 dms(110.30347), dms(14.86205), 1.0 ) {
00036
00037 a0 = 39.48168677;
00038 e0 = 0.24880766;
00039 i0.setD( 17.14175 );
00040 w0.setD( 113.76329 );
00041 N0.setD( 110.30347 );
00042 M0.setD( 14.86205 );
00043
00044
00045 a1 = -0.00076912;
00046 e1 = 0.00006465;
00047 i1 = 11.07/3600.;
00048 w1 = -94.92/3600.;
00049 N1 = -37.33/3600.;
00050 M1 = 522880.15/3600.;
00051
00052 setPhysicalSize( pSize );
00053 setType( 2 );
00054 }
00055
00056 KSPluto::~KSPluto() {
00057 }
00058
00059
00060
00061 bool KSPluto::findGeocentricPosition( const KSNumbers *num, const KSPlanetBase *Earth ) {
00062
00063 double t = num->julianCenturies();
00064 set_a( a0 + a1*t );
00065 set_e( e0 + e1*t );
00066 set_i( i0.Degrees() + i1*t );
00067 set_N( N0.Degrees() + N1*t );
00068 set_M( M0.Degrees() + M1*t );
00069 set_P( 365.2568984 * pow((a0+a1*t), 1.5) );
00070 setJD( num->julianDay() );
00071
00072 return KSAsteroid::findGeocentricPosition( num, Earth );
00073 }