12345678910111213141516171819202122232425 |
- #include <u.h>
- #include <libc.h>
- #include "map.h"
- static int
- Xmollweide(struct place *place, double *x, double *y)
- {
- double z;
- double w;
- z = place->nlat.l;
- if(fabs(z)<89.9*RAD)
- do { /*newton for 2z+sin2z=pi*sin(lat)*/
- w = (2*z+sin(2*z)-PI*place->nlat.s)/(2+2*cos(2*z));
- z -= w;
- } while(fabs(w)>=.00001);
- *y = sin(z);
- *x = - (2/PI)*cos(z)*place->wlon.l;
- return(1);
- }
- proj
- mollweide(void)
- {
- return(Xmollweide);
- }
|