Why not?
This commit is contained in:
parent
a01e58366c
commit
28994509cc
82 changed files with 13293 additions and 0 deletions
35
src/cmd/map/libmap/elliptic.c
Normal file
35
src/cmd/map/libmap/elliptic.c
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#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,¢er);
|
||||
return(Xelliptic);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue