123456789101112131415161718192021222324252627282930 |
- #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);
- }
|