1 28994509 2004-04-21 devnull #include <u.h>
2 28994509 2004-04-21 devnull #include <libc.h>
3 28994509 2004-04-21 devnull #include "map.h"
5 28994509 2004-04-21 devnull struct coord center;
7 28994509 2004-04-21 devnull static int
8 28994509 2004-04-21 devnull Xelliptic(struct place *place, double *x, double *y)
10 28994509 2004-04-21 devnull double r1,r2;
11 28994509 2004-04-21 devnull r1 = acos(place->nlat.c*(place->wlon.c*center.c
12 28994509 2004-04-21 devnull - place->wlon.s*center.s));
13 28994509 2004-04-21 devnull r2 = acos(place->nlat.c*(place->wlon.c*center.c
14 28994509 2004-04-21 devnull + place->wlon.s*center.s));
15 28994509 2004-04-21 devnull *x = -(r1*r1 - r2*r2)/(4*center.l);
16 28994509 2004-04-21 devnull *y = (r1*r1+r2*r2)/2 - (center.l*center.l+*x**x);
17 28994509 2004-04-21 devnull if(*y < 0)
19 28994509 2004-04-21 devnull *y = sqrt(*y);
20 28994509 2004-04-21 devnull if(place->nlat.l<0)
21 28994509 2004-04-21 devnull *y = -*y;
22 28994509 2004-04-21 devnull return(1);
26 28994509 2004-04-21 devnull elliptic(double l)
28 28994509 2004-04-21 devnull l = fabs(l);
30 28994509 2004-04-21 devnull return(0);
32 28994509 2004-04-21 devnull return(Xazequidistant);
33 28994509 2004-04-21 devnull deg2rad(l,¢er);
34 28994509 2004-04-21 devnull return(Xelliptic);