6 |
|
} |
7 |
|
{ Compute lines of latitude and longitude } |
8 |
|
LATSTEP : 15*DEGREE; |
9 |
< |
LONGSTEP : 30*DEGREE; |
10 |
< |
LWIDTH : 1*DEGREE; |
9 |
> |
LONGSTEP : 30*DEGREE; { must divide evenly into 90 degrees } |
10 |
> |
LATWIDTH : 0.7*DEGREE; |
11 |
> |
LONGWIDTH : 1.*DEGREE; |
12 |
|
|
13 |
< |
latlong = if(LWIDTH-mod(Acos(Nz)+LWIDTH/2,LATSTEP), .01, |
14 |
< |
if(LWIDTH-mod(atan2(Ny,Nx)+LWIDTH/2,LONGSTEP), .01, 1)); |
13 |
> |
mylong = atan2(Ny,Nx); |
14 |
> |
|
15 |
> |
latlong = if(LATWIDTH-mod(Acos(Nz)+LATWIDTH/2,LATSTEP), .05, |
16 |
> |
if(LONGWIDTH-mod(mylong+LONGWIDTH/2,90*DEGREE), .01, |
17 |
> |
if(LONGWIDTH-mod(mylong+LONGWIDTH/2,LONGSTEP), .3, 1))); |
18 |
> |
|
19 |
> |
{ Compute up vector corresponding to sphere position } |
20 |
> |
upx = Nx*Ny*(Nz-1); |
21 |
> |
upy = Nx*Nx + Ny*Ny*Nz; |
22 |
> |
upz = -Ny*(Nx*Nx+Ny*Ny); |
23 |
|
|
24 |
|
interp_arr2`(i,x,f):(i+1-x)*f(i)+(x-i)*f(i+1); |
25 |
|
interp_arr`(x,f):if(x-1,if(f(0)-x,interp_arr2(floor(x),x,f),f(f(0))),f(1)); |