home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <math.h>
- #include "astro.h"
-
- #define TWOPI (2*PI)
-
- /* given the mean anomaly, ma, and the eccentricity, s, of elliptical motion,
- * find the true anomaly, *nu, and the eccentric anomaly, *ea.
- * all angles in radians.
- */
- anomaly (ma, s, nu, ea)
- double ma, s;
- double *nu, *ea;
- {
- double m, dla, fea;
-
- m = ma-TWOPI*(long)(ma/TWOPI);
- fea = m;
- while (1) {
- dla = fea-(s*sin(fea))-m;
- if (fabs(dla)<1e-6)
- break;
- dla /= 1-(s*cos(fea));
- fea -= dla;
- }
-
- *nu = 2*atan(sqrt((1+s)/(1-s))*tan(fea/2));
- *ea = fea;
- }
-