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]

enter image description here

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