Fork me on GitHub
Math for the people, by the people.

User login

solid angle

space angle, full solid angle, steradian, trihedral angle
Major Section: 
Type of Math Object: 
Groups audience: 

Mathematics Subject Classification

15A72 no label found51M25 no label found


There has long been a wrong result in this solid angle (example 3). I have now corrected it and added the simpler form 4arcsin...

P. S. -- The corresponding formula in
is also corrected.

Question of Yossarian:

I just saw your entry of the Solid Angle on PlanetMath and wondered if you could give me a hint as to how to calculate the solid angle of a cylinder elegantly (if there is such a way).
The cylinder has a radius r, length L and it's center is at a distance R from the origin.
If I set the axis of the cylinder in parallel to the z-axis on the x-Axis, then the azimuth angle (theta) limits are from -ArcSin[r/R] to +ArcSin[r/R]. The polar angle (phi) limits of course depend on the azimuth. Here is what I figured out...
ArcTan[0.5*L/(R-(Cos[theta]^2 (RR*Tan[theta]^2 + Sqrt[r^2 + (r^2-R^2)*Tan[theta]^2])))]
(The biggest phi is in the direction of the Axis and then would simply give phi(0)=ArcTan[0.5*L/(R-r)] ).
I then just calculated the integral...
Omega = intint_S sin(phi)dphi dtheta with the above given limits.
Is this correct and/or is there an elegant way to calculate the solid angle of the cylinder?
As far as I see it, there is no closed form of the result. Do You agree?
Best Regards,

Dear Stephan,
I guess that you mean a right circular cylinder with radius r of the base circle and height L and that the center of the cylinder is on the x-axis and then one forms the smallest solid angle with apex in the origin and enclosing the cylinder. Right? Such a solid angle seems to be quite difficult to calculate. Maybe somebody else could do it. I send your question to the public forum.

> I guess that you mean a right circular cylinder with radius r of the
> base circle and height L and that the center of the cylinder is on
> the x-axis and then one forms the smallest solid angle with apex in
> the origin and enclosing the cylinder.

If so, then form the two planes tangent to the cylinder passing
through the origin and the portions of cones passing through the
circles which bound the ends of your cylinder. Then the solid
angle can be expressed as the sum of the angles subtended by a
prism bounded by he planes and the portions of cones.

Yes, it's so, said Yossarian. Thanks for good advise.

I think Yossarian is confusing azimuth angle with course (tack) angle.

Your suggestion doesn't help me. Sorry! To me you just rephrase the problem in different terms and ... the parts of the cones are not so simple since the cones have no rotational symmetry and only parts are needed. I have given a solution already. It would help me if someone could tell me if I'm right or if I'm wrong where I miss the point.
My idea to solve the problem is to find the limits of the azimuth and polar angles for the integral and then simply integrate it numerically (since there is probably no closed form solution to this problem anyway). So the integral would be from lower limit of theta to upper limit of theta and from lower limit of the polar angle phi to its upper limit. The polar angle limits of course depend on the azimuth, since it is defined by the circular rims of the cylinder. This isn't so complicated either (see below). So the double-integral for the solid angle is Integral[Sin[x],{y,theta_min,theta_max},{x,phi_min(y),phi_max(y)}]. Right?
Now the details:
I got the two limiting azimuth angle (theta_min and theta_max) of the two tangential planes you mention, which are +/- ArcSin[r/R]. This was easy.
To get the limiting polar angles (phi_min(y) and Phi_max(y)) I need two steps.
First step: The shortest distance from the origin to the cylinder for a given angle theta. I found this to be D[theta]=Cos[theta]*(R+Sqrt[R^2+(r-R)*(r+R)*Sec[theta]^2])
Second step: The limits of the polar angles are: pi/2-ArcTan[0.5*L/D[theta]) and pi/2+ArcTan[0.5*L/D[theta])

I don't think so... look at
theta is the azimuth angle, phi the polar angle. Or what do you mean by confusing?

Hello Yossarian,
>I don't think so... look at >
That graphics is confuse and further wrong.
Confuse: because the 'true North' is taken as positive x-axis since the azimuth is measured with respect to this axis. Conventionally true North is taken towards the positive z-axis and N-S-E-W on a plane parallel to yz-plane (in our case beacause |OC|=R, C(R,0,0)).
Wrong: because an observer placed on the positive semi-axis (z>0 in mathworld), the azimuth must be measured clockwise and not counterclockwise as there appears.
Please take true North towards z>0, P(x,y,z)\mapsto P(\rho,\theta,\phi), where P is an arbitrary point over the cilindrical mantle (lateral surface), \rho=|\vec{OP}|= polar variable, \theta=azimuth=angle(Oz,OP), measured from z>0 to OP, i.e. clockwise (it seen from x>0), \phi= angle(Ox,OP'), P' the horizontal projection of P, on horizontal xy-plane and it measured from x>0 to OP', i.e. counterclockwise (|OP'|=s=\sqrt{x^2+y^2}), r=cilinder base's radius.
All of these conventions are practically Universal! For this reason I said you was confused with those angles.
Position vector= \vec{OP}= s\hat{e}_s + z\hat{k}, expressed in cilindrical coordinates.
{\hat{e}_s, \hat{e}_\phi} is a polar basis on the xy-plane. Recall that
d(\hat{e}_s)/d(\phi) =\hat{e}_\phi, d(\hat{e}_\phi)/d(\phi) = -\hat{e}_s.
Also recall that
\nabla(1/rho)= -(1/\rho^2).\nabla(\rho), gradient that you will need.
Area element = dA = s.d(\phi).dz (over the mantle).
But you need this vectorially, that is
d\vec{A}= \hat{n}.dA, notice that \hat{n} is parallel to xy-plane (so \hat{n}=\hat{e}_s)since the mantle is parallel to z-axis, but caution!: it is of magnitude=1, but its direction is variable (\hat{n} is normal to the mantle and outwards)
Gradient in cilindrical coordinates:
\nabla(\rho)= [\partial(\rho)]/[\partial(s)].\hat{e}_s
+ 1/s.[\partial(rho)]/[\partial(\phi)].\hat{e}_\phi
+ [\partial(\rho)]/[\partial(z)].\hat{k}.
Now use pahio's formula:
\Omega= -\int_A \nabla(1/\rho)o\hat{e}_s.dA
for the solid angle (the "o" is dot product).
Rearrenge all and start working out. I'll do the same this night and reply you again maybe tomorrow.
Perhaps we would get an elliptic integral but I'm not sure, indeed I don't know it.

Now I'm seeing your link is defining spherical coordinates but not azimuth. However mathworld says the following:
"Unfortunately, the convention in which the symbols \theta and \phi are reversed is also frequently used, especially in physics."
Well, that's an opinion, however the book by M. Spiegel, Vector Analysis, which is a classic one, use (r,\theta,\phi) instead of (r,\phi,\theta), and I'm sure the the former is more used. Anyway, I gonna use (\rho,\theta(azimuth),\phi) as r we are using to denote the base's radius. I also realized that s=r, so 's' isn't necessary. Then we may use \hat{e}_r for \hat{n}=\hat{e}_s. On the other hand, my position vector
\vec{OP} is wrong (I took it in a particular position). Correct is
\vec{OP}=\vec{\rho}=\vec{OP'} + z.\vec{k}. \vec{OP'} is a bit hard to expressing as a linear combination of \hat{e}_r and \hat{e}_\phi, but I think is better than manage the integral in Cartesian coordinates. Spherical coordinates is an alternative, but I think that due the nature of the mantle, cilindrical one is better, but I'm not sure. So we must working with the obliqueangle triangle OCP', where |OC|=R, |CP|=r. The internal angle in C is \pi-\phi, so from the cosine's theorem
We also need the right triangle OP'P, leg |P'P|=z and hypotenuse |OP|=\rho, external angle at O (i.e. zOP)=\theta=azimuth. Notice that |OP'|=\rho.\sin(\theta), and z=\rho.\cos(\theta), and also by Pithagoras: \rho^2=|OP'|^2+z^2.

Working out a little pahio's formula, we have
\Omega= -\int_A \hat{n}o\nabla(1/\rho)dA=\int_A (1/\rho^2)\hat{n}o\nabla(\rho)dA
= \int_A (\hat{n}o\vec{\rho)/(\rho^3)dA, (1)
since \nabla(\rho)=(\vec{\rho})/(\rho). Also recall that \hat{n}=\hat{e}_r. I got the following results.
and the solid angle is from (1),
\Omega =
\int_{-L/2}^{L/2}\int_{\phi_0}^{2.\pi-\phi_0} [(r+R.\cos(\phi))(r.d\]/[R^2+r^2+2.R.r.\cos(\phi)+z^2]^{3/2}, (R,r=const.)
where \phi_0 is known. This integral, if I haven't had mistakes, is really hard to evaluate. Surface A possesses a lattice formed by two families of orthogonal curves, one of them are segments of circular geodesics, of radius r, parallel to horizontal xy-plane, and the another one are vertical segment lines, of length L, parallel to z-axis.

Hi Perucho

Thank you for your reply. Concerning the spherical angles... I don't think that the graphics in mathworld is confusing and/or wrong... it is what I most often was seeing in textbooks and what you can find on the internet (e.g. or As you cited it is the way mathematicians define the angles (physicist often use theta for phi and vice versa). However I think we now agreed on a common language.
In the meantime I got pretty confident that my way with the limiting angles in the spherical coordinate system gives the correct answer. For L=76mm and r=13mm I calculated the ratio of the specific solid angle to the full solid angle (4 Pi). The value for R=13mm is of coursae 0.5 and then drops rather fast to smaller values (here are some value pairs: (0.453, 14),(0.333, 15),(0.288, 16),(0.256, 17),(0.232, 18),(0.212, 19),(0.195, 20),(0.138, 25),(0.105, 30),(0.067, 40)).
I will now implement your solution and compare. Thank you for your time and efforts!

Dear Yossarian,
>I don't think that the graphics in mathworld is confusing and/or wrong...
Yeah, mathworld is correct! and I tried to say it you in one of my posts. I was confused because, by one side, that article is about spherical coordinates but not about the azimuth, and second because mathworld termed \phi the polar (spatial) angle and I always use \theta. Sorry!
> I will now implement your solution and compare
I recommed you check out my calculations first.
>Thank you for your time and efforts!
You will always be welcome Yossarian.


I was wondering if you have a written solution to Example 3 that I can try to follow. Please?

Thanks. Michael


I am curious, because if Omega = 2pi(1-cos theta) for a cone, and since Omega = surface area/r^2, then for a base of a projected pyramid, it is nothing more than like some square beam of light projected instead of a circular light. We can modify the surface area to get the answer it seems.

Omega = S/r^2

Let a projected circle have the same diameter as the squares side.
The circle fits in the square, with the square edges protruding. We
know that the square projection will yield a larger solid angle.

S(cube) = 24r^2
S(sphere) = 4pi*r^2


Am I right in thinking that:


Omega(sphere) = 2pi(1-cos theta)
Omega(cube) = 2pi(1-cos theta) * 24r^2/4pi*r^2 = 12(1-cos theta)?

Thanks for listening.

Yes, Michael, last october I have calculated Ex. 3 on a piece of paper (which has been burned in the sauna). You can yourself perform the calculation: Think that the apex is (0, 0, 0), the centre of the base (0, 0, h) and the base sides parallel to x- and y-axes. Choose the 3 vectors from the origin to the points
(b, b, h), (-b, b, h) and (-b, -b, h)
where b = a/2. Then (1) gives half of the apical solid angle.

Subscribe to Comments for "solid angle"