1 |
{ RCSid $Id$ } |
2 |
{ |
3 |
Uniform sampling of sphere |
4 |
2/15/2005 G. Ward |
5 |
|
6 |
Constant: |
7 |
N - total number of samples on sphere |
8 |
Input: |
9 |
i - sample number [0,N-1] |
10 |
Output: |
11 |
theta - polar angle (radians) |
12 |
phi - azimuthal angle (radians) |
13 |
Dx - X-component of direction vector |
14 |
Dy - Y-component of direction vector |
15 |
Dz - Z-component of direction vector |
16 |
} |
17 |
S : .7; { jitter amount (0-1) } |
18 |
|
19 |
k : 2*sqrt(PI/N); { k^2 is solid angle of each sample } |
20 |
|
21 |
alpha0 = asin(2/N*(i+.5) - 1); |
22 |
|
23 |
theta = alpha0 + PI/2 + k*S*(rand(.35*i+10.3) - .5); |
24 |
phi = sqrt(PI*N)*alpha0 + k*S*(rand(-.83*i-17.9) - .5); |
25 |
|
26 |
sint = sin(theta); |
27 |
Dx = cos(phi)*sint; |
28 |
Dy = sin(phi)*sint; |
29 |
Dz = cos(theta); |