| #include <u.h> | |
| #include <libc.h> | |
| #include "map.h" | |
| static int | |
| Xlagrange(struct place *place, double *x, double *y) | |
| { | |
| double z1,z2; | |
| double w1,w2,t1,t2; | |
| struct place p; | |
| copyplace(place,&p); | |
| if(place->nlat.l<0) { | |
| p.nlat.l = -p.nlat.l; | |
| p.nlat.s = -p.nlat.s; | |
| } | |
| Xstereographic(&p,&z1,&z2); | |
| csqrt(-z2/2,z1/2,&w1,&w2); | |
| cdiv(w1-1,w2,w1+1,w2,&t1,&t2); | |
| *y = -t1; | |
| *x = t2; | |
| if(place->nlat.l<0) | |
| *y = -*y; | |
| return(1); | |
| } | |
| proj | |
| lagrange(void) | |
| { | |
| return(Xlagrange); | |
| } |