xref: /plan9-contrib/sys/src/cmd/map/libmap/conic.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
13e12c5d1SDavid du Colombier #include "map.h"
23e12c5d1SDavid du Colombier 
33e12c5d1SDavid du Colombier static struct coord stdpar;
43e12c5d1SDavid du Colombier 
53e12c5d1SDavid du Colombier static int
6*219b2ee8SDavid du Colombier Xconic(struct place *place, double *x, double *y)
73e12c5d1SDavid du Colombier {
8*219b2ee8SDavid du Colombier 	double r;
93e12c5d1SDavid du Colombier 	if(fabs(place->nlat.l-stdpar.l) > 80.*RAD)
103e12c5d1SDavid du Colombier 		return(-1);
113e12c5d1SDavid du Colombier 	r = stdpar.c/stdpar.s - tan(place->nlat.l - stdpar.l);
123e12c5d1SDavid du Colombier 	*x = - r*sin(place->wlon.l * stdpar.s);
133e12c5d1SDavid du Colombier 	*y = - r*cos(place->wlon.l * stdpar.s);
143e12c5d1SDavid du Colombier 	if(r>3) return(0);
153e12c5d1SDavid du Colombier 	return(1);
163e12c5d1SDavid du Colombier }
173e12c5d1SDavid du Colombier 
183e12c5d1SDavid du Colombier proj
19*219b2ee8SDavid du Colombier conic(double par)
203e12c5d1SDavid du Colombier {
213e12c5d1SDavid du Colombier 	if(fabs(par) <.1)
223e12c5d1SDavid du Colombier 		return(Xcylindrical);
233e12c5d1SDavid du Colombier 	deg2rad(par, &stdpar);
243e12c5d1SDavid du Colombier 	return(Xconic);
253e12c5d1SDavid du Colombier }
26