| #include <u.h> | |
| #include <libc.h> | |
| #include "map.h" | |
| static double scale; | |
| static int | |
| Xgall(struct place *place, double *x, double *y) | |
| { | |
| /* two ways to compute tan(place->nlat.l/2) */ | |
| if(fabs(place->nlat.s)<.1) | |
| *y = sin(place->nlat.l/2)/cos(place->nlat.l/2); | |
| else | |
| *y = (1-place->nlat.c)/place->nlat.s; | |
| *x = -scale*place->wlon.l; | |
| return 1; | |
| } | |
| proj | |
| gall(double par) | |
| { | |
| double coshalf; | |
| if(fabs(par)>80) | |
| return 0; | |
| par *= RAD; | |
| coshalf = cos(par/2); | |
| scale = cos(par)/(2*coshalf*coshalf); | |
| return Xgall; | |
| } |