This is documentation for Mathematica 3, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)
 Documentation / Mathematica / Add-ons / Standard Packages / Graphics  /

Graphics`SurfaceOfRevolution`

A surface of revolution is generated by rotating a curve about a given line. SurfaceOfRevolution plots the surface of revolution generated by rotating about any axis the graph of a function in the

plane or a curve described parametrically.


Surface of revolution of a curve.

  • This loads the package.
  • In[1]:= <<Graphics`SurfaceOfRevolution`

  • The curve is rotated about the

    axis.
  • In[2]:= SurfaceOfRevolution[
    Sin[x], {x, 0, 2 Pi}]


  • Any options you give are passed directly to the built-in ParametricPlot3D.
  • In[3]:= SurfaceOfRevolution[ Sin[x], {x, 0, 2 Pi},
    ViewVertical -> {1, 0, 0},
    Ticks -> {Automatic, Automatic,
    {-1., 0, 1.}}]


  • This gives the surface of revolution of a curve in the plane described parametrically with the variable

    .
  • In[4]:= SurfaceOfRevolution[{1.1 Sin[u], u^2},
    {u, 0, 3 Pi/2}, BoxRatios -> {1, 1, 2}]



    Surface of revolution of a curve over a reduced angle.

  • Here is the same curve rotated from to

    .
  • In[5]:= SurfaceOfRevolution[{1.1 Sin[u], u^2},
    {u, 0, 3 Pi/2}, {t, 0, Pi},
    BoxRatios -> {1, 1, 2}]



    Specifying the axis of revolution.

  • Here is a curve rotated about a different axis in three-dimensional space.
  • In[6]:= SurfaceOfRevolution[x^2, {x, 0, 1},
    RevolutionAxis -> {1, 1, 1}]



    Surfaces of revolution from a list of data points.

    We can also generate a surface of revolution from a curve specified by a list of data points. The points can lie in the

    plane or in three-dimensional space.

  • Here is a list of data in the

    plane.
  • In[7]:= dat = Table[{n, n^3}, {n, 0, 1, .1}];

  • This gives the surface of revolution of dat about the axis connecting the origin to point {1,-1,1} .
  • In[8]:= ListSurfaceOfRevolution[dat, {t, 0, Pi/2},
    RevolutionAxis -> {1, -1, 1},
    PlotRange -> All]