File:  [Research Unix] / researchv10no / cmd / map / libmap / elliptic.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:21:35 2018 UTC (8 years, 1 month ago) by root
Branches: belllabs, MAIN
CVS tags: researchv10, HEAD
researchv10 Norman

#include "map.h"

struct coord center;

static int
Xelliptic(struct place *place, double *x, double *y)
{
	double r1,r2;
	r1 = acos(place->nlat.c*(place->wlon.c*center.c
		- place->wlon.s*center.s));
	r2 = acos(place->nlat.c*(place->wlon.c*center.c
		+ place->wlon.s*center.s));
	*x = -(r1*r1 - r2*r2)/(4*center.l);
	*y = (r1*r1+r2*r2)/2 - (center.l*center.l+*x**x);
	if(*y < 0)
		*y = 0;
	*y = sqrt(*y);
	if(place->nlat.l<0)
		*y = -*y;
	return(1);
}

proj
elliptic(double l)
{
	l = fabs(l);
	if(l>89)
		return(0);
	if(l<1)
		return(Xazequidistant);
	deg2rad(l,&center);
	return(Xelliptic);
}

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.