|
|
1.1 root 1: #include "map.h"
2:
3: struct coord center;
4:
5: static int
6: Xelliptic(struct place *place, double *x, double *y)
7: {
8: double r1,r2;
9: r1 = acos(place->nlat.c*(place->wlon.c*center.c
10: - place->wlon.s*center.s));
11: r2 = acos(place->nlat.c*(place->wlon.c*center.c
12: + place->wlon.s*center.s));
13: *x = -(r1*r1 - r2*r2)/(4*center.l);
14: *y = (r1*r1+r2*r2)/2 - (center.l*center.l+*x**x);
15: if(*y < 0)
16: *y = 0;
17: *y = sqrt(*y);
18: if(place->nlat.l<0)
19: *y = -*y;
20: return(1);
21: }
22:
23: proj
24: elliptic(double l)
25: {
26: l = fabs(l);
27: if(l>89)
28: return(0);
29: if(l<1)
30: return(Xazequidistant);
31: deg2rad(l,¢er);
32: return(Xelliptic);
33: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.