# Parametric Region from Surface of Revolution

I would like to create a region defined by the volume inside (or outside) a surface of revolution, and am struggling with understanding how the ParametricRegion function works. The help documentation only gives 2D examples unfortunately.

For example I would like to take the surface defined by:

ParametricPlot3D[{Cos[s] (1 + t^2), Sin[s] (1 + t^2),t}, {t, -2, 2}, {s, 0, 2 \[Pi]}]


and then us this to define one of my region boundaries.

If I define a 3D region like:

reg = ParametricRegion[{Cos[s] (1 + t^2), Sin[s] (1 + t^2), t}, {{t, -2, 2}, {s, 0, 2 \[Pi]}}]


and then try to plot this using RegionPlot[reg]

I get errors related that say such a region cannot be automatically discretised and that this is not a valid region to plot.

As far as I understand this code should give me the surface ? But does anyone know how one can define the volume inside, and then visualise this using RegionPlot or DiscretizeRegion ?

• It's not a closed surface. What you mean by "inside"? Oct 17, 2016 at 22:40
• @MichaelE2. Sorry, perhaps this was unclear. By inside I mean the region close to the z-axis. I would also like to cap the region eventually, to make a closed shape (i.e. constraining to -a<z<a for "a" being some numerical value. In 2D it seems that it is not important whether surfaces are closed or not (i.e. one can define regions such that x<0) Oct 18, 2016 at 3:09
• @MichaelE2. I just saw this post link, which I guess is related (could be that my question somewhat duplicates that one). I also realised I was using RegionPlot (defined only for 2D) and not RegionPlot3D. In the end I guess the question comes down to whether parametric regions can be plotted using RegionPlot3D or not? Oct 18, 2016 at 3:33

The first thing to notice is that you have defined isn't a 3D region:

In[1]:= reg = ParametricRegion[{Cos[s] (1 + t^2), Sin[s] (1 + t^2), t},
{{t, -2, 2}, {s, 0, 2 \[Pi]}}];
In[2]:= RegionDimension[reg]
Out[2]= 2


It's a 2D region, because you've defined a surface of revolution. What's not very well documented, unfortunately, is that RegionPlot(3D) only support full dimensional regions. I presume what you're interested in is the volum of revolution which is swept out by a ray from the z-axis, which is the following:

In[3]:= reg = ParametricRegion[{u Cos[s] (1 + t^2), u Sin[s] (1 + t^2), t},
{{t, -2, 2}, {s, 0, 2 \[Pi]}, {u, 0, 1}}];
In[4]:= RegionDimension[reg]
Out[4]= 3


This can now be plotted using RegionPlot3D. For example, the following looks reasonably nice:

RegionPlot3D[reg, MaxRecursion -> 3, PlotPoints -> 35,
PlotRange -> {{-5, 5}, {-5, 5}, {-2, 2}}]

• Thanks for pointing that out. Exactly what I was looking for. Oct 18, 2016 at 5:21

I am not exactly sure what region is required.

region1 =
ImplicitRegion[
0 < x^2 + y^2 < (z^2 + 1)^2, {{x, -5, 5}, {y, -5, 5}, {z, -2, 2}}];
region2 =
ImplicitRegion[
x^2 + y^2 > (z^2 + 1)^2, {{x, -5, 5}, {y, -5, 5}, {z, -2, 2}}];
opts = Sequence[Background -> Black, Boxed -> False, ImageSize -> 400]
Column[{RegionPlot3D[region1, PlotPoints -> 40, PlotStyle -> LightRed,
Evaluate@opts],
RegionPlot3D[region2, PlotPoints -> 40,
PlotStyle -> {LightBlue, Opacity[0.5]}, Evaluate@opts],
RegionPlot3D[{region1, region2}, PlotPoints -> 40,
PlotStyle -> {LightRed, {LightBlue, Opacity[0.5]}}, Evaluate@opts]

}]


• The First image was the one I was looking for, although in fact either of the surfaces is usable for my calculations. Many thanks! Oct 18, 2016 at 10:52