26 lines
407 B
C
26 lines
407 B
C
#include <u.h>
|
|
#include <libc.h>
|
|
#include "map.h"
|
|
/* refractive fisheye, not logarithmic */
|
|
|
|
static double n;
|
|
|
|
static int
|
|
Xfisheye(struct place *place, double *x, double *y)
|
|
{
|
|
double r;
|
|
double u = sin(PI/4-place->nlat.l/2)/n;
|
|
if(fabs(u) > .97)
|
|
return -1;
|
|
r = tan(asin(u));
|
|
*x = -r*place->wlon.s;
|
|
*y = -r*place->wlon.c;
|
|
return 1;
|
|
}
|
|
|
|
proj
|
|
fisheye(double par)
|
|
{
|
|
n = par;
|
|
return n<.1? 0: Xfisheye;
|
|
}
|