henesyinit from p9f47575dc5 years agoHistory
51 lines · 790 B · C
RawDownload
#include "map.h" static float viewpt; static intXperspective(struct place *place, float *x, float *y){	float r;	if(viewpt<=1. && place->nlat.s<=viewpt+.01)		return(-1);	r = place->nlat.c*(viewpt - 1.)/(viewpt - place->nlat.s);	*x = - r*place->wlon.s;	*y = - r*place->wlon.c;	if(r>4.)		return(0);	if(fabs(viewpt)>1. && place->nlat.s<=1./viewpt)		return(0);	return(1);} intXstereographic(struct place *place, float *x, float *y){	viewpt = -1;	return(Xperspective(place, x, y));} projperspective(float radius){	viewpt = radius;	if(radius>=1000.)		return(Xorthographic);	if(fabs(radius-1.)<.0001)		return(0);	return(Xperspective);} projstereographic(void){	viewpt = -1.;	return(Xperspective);} projgnomonic(void){	viewpt = 0.;	return(Xperspective);}