ref: 9aed1e739ba6d42074b14b4bc62487f91026b3b6
dir: /sys/src/cmd/map/libmap/fisheye.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; }