xref: /plan9/sys/src/cmd/map/libmap/conic.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1 #include "map.h"
2 
3 static struct coord stdpar;
4 
5 static int
6 Xconic(struct place *place, double *x, double *y)
7 {
8 	double r;
9 	if(fabs(place->nlat.l-stdpar.l) > 80.*RAD)
10 		return(-1);
11 	r = stdpar.c/stdpar.s - tan(place->nlat.l - stdpar.l);
12 	*x = - r*sin(place->wlon.l * stdpar.s);
13 	*y = - r*cos(place->wlon.l * stdpar.s);
14 	if(r>3) return(0);
15 	return(1);
16 }
17 
18 proj
19 conic(double par)
20 {
21 	if(fabs(par) <.1)
22 		return(Xcylindrical);
23 	deg2rad(par, &stdpar);
24 	return(Xconic);
25 }
26