Points on surface of spherical cap

1.4k Views Asked by At

I need to be able to choose random points on a spherical cap surface for which the radius and centre of the actual sphere are known.

I'd like to do so by simply restricting the range of possible spherical coordinates (rho,theta, phi as shown on http://mathinsight.org/spherical_coordinates) of points on the cap.

How can I calculate the ranges over which theta and phi can vary for points on the cap, if the cap is specified by the centre of its base and the angle from its normal vector to its base (as depicted on https://en.wikipedia.org/wiki/Spherical_cap)?

2

There are 2 best solutions below

0
On

I was considering this question 4 years later, and include the answer for others. We want to generate random $(\tilde \phi, \tilde \theta)$ on a spherical cap with angle $\theta$. If $r_1, r_2\in[0,1]$ are uniform random variables, then

$$ \tilde\phi_r = 2 \pi r_1 $$ $$ \tilde\theta_r = \arccos \left[ \left(1-\cos\theta\right)r_2 + \cos\theta\right] $$

enter image description here

0
On

HINT:

To find how $\rho, \phi$ get modified, consider trig of triangle including sphere center, south pole and required point.

Angle subtended at center is double angle at south pole. $$ \pi/2- ph1 = 2 (\pi/2- ph)$$ $$ ph= \pi/4+ ph1/2$$

$$ \rho^2 =a^2+a^2 -2a\cdot a \cos ( \pi/2 +ph1)$$ $$ \rho= 2 a \sin ( \pi/4 + ph1/2)$$

Note $ \phi, \theta$ limits I chose in reckoning spherical cap coordinates from south pole:

a = 1; ParametricPlot3D[
 2 a Sin[Pi/4 + ph1/2]*{Cos[(Pi/4 + ph1/2)] Cos[t], 
   Cos[(Pi/4 + ph1/2)] Sin[t], Sin[(Pi/4 + ph1/2)]}, {t, 0, 
  3 Pi/2}, {ph1, -Pi/2, Pi/4}]

enter image description here

Also browse related topic Stereographic Projection.