Area of surface of revolution
f[x] == Sqrt[4 - x^2]
is the distance at height x
from the origin (i.e., from {0, 0}
at height x
) to the surface; hence, one can construct
reg = ImplicitRegion[z^2 + y^2 == Sqrt[4 - x^2]^2 && -1 <= x <= 1, {x, y, z}]
which looks like this:
DiscretizeRegion[reg]
and directly compute
Area[reg]
$8\pi$
Numerically:
Area @ DiscretizeRegion @ reg / Pi
7.99449
in very good agreement.
In general this can be applied to any revolution surface, as due to its rotational symmetry it will always be given by an equation of the form z^2 + y^2 == f[x]
(given the revolution is around the x
axis).
EDIT:
To get the volume of such a barrel, consider reg2
, different from reg
only in that ==
is replaced with <=
:
reg2 = ImplicitRegion[z^2 + y^2 <= Sqrt[4 - x^2]^2 && -1 <= x <= 1, {x, y, z}]
Then
Volume[reg2]
$\frac{22 \pi }{3}$
The trick is DiscretizeGraphics
. Turns your graphic into a surface:
r = DiscretizeGraphics@
RevolutionPlot3D[Sqrt[4 - x^2], {x, -1, 1},
RevolutionAxis -> {1, 0, 0}]
then:
In[24]:= Area@r
Out[24]= 25.5411
It ain't perfect, but it's close:
In[26]:= Area@r / \[Pi]
Out[26]= 8.12997
I use this to compute Van der Waals volumes of molecules. Note that Volume
only works on closed surfaces though, but there's an answer on here (can't find it right now) that provides a way to do it with the MeshCoordinates
.
Update
Here we are. That gives you the volume.
The most direct analog, IMO, to your plot is to use the parametric form of Area
, where you add a theta variable for the rotation:
In[11]:= Area[{x, Sqrt[4 - x^2] Cos[θ], Sqrt[4 - x^2] Sin[θ]},
{x, -1, 1}, {θ, 0, 2 π}]
Out[11]= 8 π
Adding a radius variable which gives the distance from the x-axis gives you the volume (this is x-centered cylindrical coordinates):
In[12]:= Volume[{x, r Cos[θ], r Sin[θ]},
{x, -1, 1}, {θ, 0, 2 π}, {r, 0, Sqrt[4 - x^2]}]
Out[12]= (22 π)/3