1*59cc4ca5SDavid du Colombier #include <u.h> 2*59cc4ca5SDavid du Colombier #include <libc.h> 33e12c5d1SDavid du Colombier #include "map.h" 43e12c5d1SDavid du Colombier 53e12c5d1SDavid du Colombier static struct coord stdpar; 63e12c5d1SDavid du Colombier 73e12c5d1SDavid du Colombier static int Xconic(struct place * place,double * x,double * y)8219b2ee8SDavid du ColombierXconic(struct place *place, double *x, double *y) 93e12c5d1SDavid du Colombier { 10219b2ee8SDavid du Colombier double r; 113e12c5d1SDavid du Colombier if(fabs(place->nlat.l-stdpar.l) > 80.*RAD) 123e12c5d1SDavid du Colombier return(-1); 133e12c5d1SDavid du Colombier r = stdpar.c/stdpar.s - tan(place->nlat.l - stdpar.l); 143e12c5d1SDavid du Colombier *x = - r*sin(place->wlon.l * stdpar.s); 153e12c5d1SDavid du Colombier *y = - r*cos(place->wlon.l * stdpar.s); 163e12c5d1SDavid du Colombier if(r>3) return(0); 173e12c5d1SDavid du Colombier return(1); 183e12c5d1SDavid du Colombier } 193e12c5d1SDavid du Colombier 203e12c5d1SDavid du Colombier proj conic(double par)21219b2ee8SDavid du Colombierconic(double par) 223e12c5d1SDavid du Colombier { 233e12c5d1SDavid du Colombier if(fabs(par) <.1) 243e12c5d1SDavid du Colombier return(Xcylindrical); 253e12c5d1SDavid du Colombier deg2rad(par, &stdpar); 263e12c5d1SDavid du Colombier return(Xconic); 273e12c5d1SDavid du Colombier } 28