[Math] Calculating solid angles

multivariable-calculussolid angle

For a project, I'm working on calculating solid angles using calculus, but when I test my formula for the solid angle of a regular tetrahedron, I end up with $0.4633$ when according to Wolfram, I should get $0.5513$. This is going to be a bit long…

The solid angle is equal to the spanned area ($\Omega$) on the unit sphere. We also know that the area spanned is directly proportional to the volume spanned ($V$) by the solid angle.

$$\frac{\Omega}{4\pi}=\frac{V}{4\pi/3}\to\Omega=\frac{V\times4\pi}{4\pi/3}\to\Omega=3V$$

And $V$ can be found through some integration. I will be integrating the region using spherical coordinates, but honestly I don't like how $\phi$ is defined as the angle with respect to the $Z$-axis. Instead I will have $\phi$ be the angle with respect to the $XY$-plane (like angle of elevation). This puts $\phi$ inside the solid angle as opposed to outside of it. So to convert from Cartesian coordinates to this new coordinate system.

$$(x,y,z)=(\rho\cos\theta\cos\phi,\rho\sin\theta\cos\phi,\rho\sin\phi)$$
$$\frac{\partial(x,y,z)}{\partial(\rho,\theta,\phi)}=\begin{vmatrix}\cos\theta\cos\phi&-\rho\sin\theta\cos\phi&-\rho\cos\theta\sin\phi\\\sin\theta\cos\phi&\rho\cos\theta\cos\phi&-\rho\sin\theta\sin\phi\\\sin\phi&0&\rho\cos\phi\end{vmatrix}=\rho^2\cos\phi$$

And so our solid angle can be calculated as

$$\Omega=3V=3\iiint_V\rho^2\cos\phi\ d\rho\ d\theta\ d\phi$$

Since we will always be using a unit sphere

$$\Omega=3\iint_A\int_0^1\rho^2\cos\phi\ d\rho\ d\theta\ d\phi=\iint_A\cos\phi\ d\theta\ d\phi$$

Now to calculate the solid angle formed by three vectors $u$, $v$, and $w$. First we orient the solid angle into a standard position so that $u$ points in the direction $(1, 0, 0)$, $v$ lies on the plane $(\rho, \theta, 0)$, and $w$ lies anywhere in $(\rho,\theta,\phi)$. Let $\alpha$ be the angle between $u$ and $v$ (azimuth of the solid angle), and let $\beta$ be the angle between $w$ and the plane $(\rho,\theta,0)$ (elevation of the solid angle). For simplicity, we assume $0\le\alpha,\beta\le\pi/2$. The region of integration can be represented as

region of integration

Where $\alpha_1+\alpha_2=\alpha$. Thus

$$\begin{align}\Omega&=\int_0^\beta\int_{\alpha_1\phi/\beta}^{-\alpha_2\phi/\beta+\alpha}\cos\phi\ d\theta\ d\phi\\&=\int_0^\beta\cos\phi\left(-\frac{\alpha_2}{\beta}\phi+\alpha-\frac{\alpha_1}{\beta}\phi\right)d\phi\\&=\int_0^\beta\cos\phi\left(-\frac{\alpha}{\beta}\phi+\alpha\right)d\phi\\&=\frac{\alpha}{\beta}\left(1-\cos\beta\right)\end{align}$$

For a regular tetrahedron $\alpha=\pi/3,\beta=\cos^{-1}(\sqrt3/3)$. However, my equation returns $0.4633$ steradians.

I have no idea where I went wrong.

Best Answer

It's probably a bit counter-intuitive but a triangle in $(\theta,\phi)$ does not map to a spherical triangle, except for $\theta=0$ line (equator) or $\phi=\rm const$ (meridian). The straight line maps to a strange curve on the sphere. For instance, a simple line at $\theta=\rm const$ (except for equator) is "bulged" out and isn't the shortest path between two points on a sphere.

Integration in spherical coordinates is not the best way to do this, if you have a polygon on a sphere. This is because spherical coordinates have a preferred direction along $z$ and don't preserve straight lines. Moreover, you did a long detour through volume, even though the spherical coordinates alredy remove the radius from the equation (which you figured out by yourself).

What you need is spherical geometry that is meant precisely for this kind of calculations:

http://en.wikipedia.org/wiki/Spherical_trigonometry

Related Question