xref: /plan9/sys/src/cmd/map/libmap/bicentric.c (revision 59cc4ca53493a3c6d2349fe2b7f7c40f7dce7294)
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 center;
63e12c5d1SDavid du Colombier 
73e12c5d1SDavid du Colombier static int
Xbicentric(struct place * place,double * x,double * y)8219b2ee8SDavid du Colombier Xbicentric(struct place *place, double *x, double *y)
93e12c5d1SDavid du Colombier {
103e12c5d1SDavid du Colombier 	if(place->wlon.c<=.01||place->nlat.c<=.01)
113e12c5d1SDavid du Colombier 		return(-1);
123e12c5d1SDavid du Colombier 	*x = -center.c*place->wlon.s/place->wlon.c;
133e12c5d1SDavid du Colombier 	*y = place->nlat.s/(place->nlat.c*place->wlon.c);
143e12c5d1SDavid du Colombier 	return(*x**x+*y**y<=9);
153e12c5d1SDavid du Colombier }
163e12c5d1SDavid du Colombier 
173e12c5d1SDavid du Colombier proj
bicentric(double l)18219b2ee8SDavid du Colombier bicentric(double l)
193e12c5d1SDavid du Colombier {
203e12c5d1SDavid du Colombier 	l = fabs(l);
213e12c5d1SDavid du Colombier 	if(l>89)
223e12c5d1SDavid du Colombier 		return(0);
233e12c5d1SDavid du Colombier 	deg2rad(l,&center);
243e12c5d1SDavid du Colombier 	return(Xbicentric);
253e12c5d1SDavid du Colombier }
26