xref: /plan9-contrib/sys/src/cmd/map/libmap/fisheye.c (revision 59cc4ca53493a3c6d2349fe2b7f7c40f7dce7294)
1 #include <u.h>
2 #include <libc.h>
3 #include "map.h"
4 /* refractive fisheye, not logarithmic */
5 
6 static double n;
7 
8 static int
Xfisheye(struct place * place,double * x,double * y)9 Xfisheye(struct place *place, double *x, double *y)
10 {
11 	double r;
12 	double u = sin(PI/4-place->nlat.l/2)/n;
13 	if(fabs(u) > .97)
14 		return -1;
15 	r = tan(asin(u));
16 	*x = -r*place->wlon.s;
17 	*y = -r*place->wlon.c;
18 	return 1;
19 }
20 
21 proj
fisheye(double par)22 fisheye(double par)
23 {
24 	n = par;
25 	return n<.1? 0: Xfisheye;
26 }
27