Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

VenusOrbit Class Reference

Inheritance diagram for VenusOrbit:

Inheritance graph
Collaboration diagram for VenusOrbit:

Collaboration graph
List of all members.

Private Member Functions

Point3d computePosition (double jd) const
double getBoundingRadius () const
double getPeriod () const

Member Function Documentation

Point3d VenusOrbit::computePosition double  jd  )  const [inline, private, virtual]
 

Implements CachingOrbit.

Definition at line 446 of file customorbit.cpp.

References computePlanetCoords(), computePlanetElements(), cos(), degToRad(), distance(), gPlanetElements, meanAnomalySun(), PI, and sin().

00447     {
00448     const int p = 1;  //Planet 1
00449     vector<int> pList;
00450     double t;
00451     double map[4], mas;
00452     double dl, dr, dml, ds, dm, da, dhl;
00453     double eclLong, eclLat, distance;    //heliocentric longitude, latitude, distance
00454 
00455     dl = dr = dml = ds = dm = da = dhl = 0.0;
00456 
00457     //Calculate the Julian centuries elapsed since 1900
00458         t = (jd - 2415020.0)/36525.0;
00459 
00460     mas = meanAnomalySun(t);
00461 
00462     //Specify which planets we must compute elements for
00463     pList.push_back(1);
00464     pList.push_back(3);
00465     computePlanetElements(t, pList);
00466 
00467     //Compute necessary planet mean anomalies
00468     map[0] = 0.0;
00469     map[1] = degToRad(gPlanetElements[1][0] - gPlanetElements[1][2]);
00470     map[2] = 0.0;
00471     map[3] = degToRad(gPlanetElements[3][0] - gPlanetElements[3][2]);
00472 
00473     //Compute perturbations
00474     dml = degToRad(7.7e-4*sin(4.1406+t*2.6227));
00475     dm = dml;
00476 
00477         dl = 3.13e-3*cos(2*mas-2*map[1]-2.587)+
00478              1.98e-3*cos(3*mas-3*map[1]+4.4768e-2)+
00479              1.36e-3*cos(mas-map[1]-2.0788)+
00480              9.6e-4*cos(3*mas-2*map[1]-2.3721)+
00481              8.2e-4*cos(map[3]-map[1]-3.6318);
00482 
00483         dr = 2.2501e-5*cos(2*mas-2*map[1]-1.01592)+
00484              1.9045e-5*cos(3*mas-3*map[1]+1.61577)+
00485              6.887e-6*cos(map[3]-map[1]-2.06106)+
00486              5.172e-6*cos(mas-map[1]-5.08065e-1)+
00487              3.62e-6*cos(5*mas-4*map[1]-1.81877)+
00488              3.283e-6*cos(4*mas-4*map[1]+1.10851)+
00489              3.074e-6*cos(2*map[3]-2*map[1]-9.62846e-1);
00490 
00491     computePlanetCoords(p, map[p], da, dhl, dl, dm, dml, dr, ds,
00492                         eclLong, eclLat, distance);
00493 
00494     //Corrections for internal coordinate system
00495     eclLat -= (PI/2);
00496     eclLong += PI;
00497 
00498     return Point3d(cos(eclLong) * sin(eclLat) * distance,
00499                    cos(eclLat) * distance,
00500                    -sin(eclLong) * sin(eclLat) * distance);
00501     };

double VenusOrbit::getBoundingRadius  )  const [inline, private, virtual]
 

Implements CachingOrbit.

Definition at line 508 of file customorbit.cpp.

References BoundingRadiusSlack.

00509     {
00510         return 1.089e+8 * BoundingRadiusSlack;
00511     };

double VenusOrbit::getPeriod  )  const [inline, private, virtual]
 

Implements CachingOrbit.

Definition at line 503 of file customorbit.cpp.

00504     {
00505         return 224.7018;
00506     };


The documentation for this class was generated from the following file:
Generated on Sat Jan 14 22:33:41 2006 for Celestia by  doxygen 1.4.1