Blame


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"
4 28994509 2004-04-21 devnull
5 28994509 2004-04-21 devnull static double scale;
6 28994509 2004-04-21 devnull
7 28994509 2004-04-21 devnull static int
8 28994509 2004-04-21 devnull Xgall(struct place *place, double *x, double *y)
9 28994509 2004-04-21 devnull {
10 28994509 2004-04-21 devnull /* two ways to compute tan(place->nlat.l/2) */
11 28994509 2004-04-21 devnull if(fabs(place->nlat.s)<.1)
12 28994509 2004-04-21 devnull *y = sin(place->nlat.l/2)/cos(place->nlat.l/2);
13 28994509 2004-04-21 devnull else
14 28994509 2004-04-21 devnull *y = (1-place->nlat.c)/place->nlat.s;
15 28994509 2004-04-21 devnull *x = -scale*place->wlon.l;
16 28994509 2004-04-21 devnull return 1;
17 28994509 2004-04-21 devnull }
18 28994509 2004-04-21 devnull
19 28994509 2004-04-21 devnull proj
20 28994509 2004-04-21 devnull gall(double par)
21 28994509 2004-04-21 devnull {
22 28994509 2004-04-21 devnull double coshalf;
23 28994509 2004-04-21 devnull if(fabs(par)>80)
24 28994509 2004-04-21 devnull return 0;
25 28994509 2004-04-21 devnull par *= RAD;
26 28994509 2004-04-21 devnull coshalf = cos(par/2);
27 28994509 2004-04-21 devnull scale = cos(par)/(2*coshalf*coshalf);
28 28994509 2004-04-21 devnull return Xgall;
29 28994509 2004-04-21 devnull }