﻿

.. |newpage| raw:: latex

   \newpage



.. |br| raw:: html

   <br />





|newpage|



Surfaces of revolution: spheres and related
======================================================


See also: https://mathworld.wolfram.com/SurfaceofRevolution.html

A surface of revolution is a surface generated by rotating a two-dimensional curve about an axis. The resulting surface therefore always has azimuthal symmetry. Examples of surfaces of revolution include the apple surface, cone (excluding the base), conical frustum (excluding the ends), cylinder (excluding the ends), Darwin-de Sitter spheroid, Gabriel's horn, hyperboloid, lemon surface, oblate spheroid, paraboloid, prolate spheroid, pseudosphere, sphere, spheroid, and torus (and its generalization, the toroid).

The standard parameterization of a surface of revolution is given by

.. math:: x(u,v) = \phi(v) \cos(u)

.. math:: y(u,v) = \phi(v) \sin(u)

.. math:: z(u,v) = \psi(v) 



Prism and cylinder
-----------------------------------------------------



See also: http://www.3d-meier.de/tut3/Seite84.html, Cylinder

See also: https://mathworld.wolfram.com/Cylinder.html, Cylinder




|01a_ROT_Prism3| `\quad` |01b_ROT_Prism4| `\quad` |01c_ROT_Cylinder|

.. |01a_ROT_Prism3| image:: ../_static/On2DCurves/RevolutionOpen/01a_ROT_Prism3.3D.xml.jpg
   :width: 30 %

.. |01b_ROT_Prism4| image:: ../_static/On2DCurves/RevolutionOpen/01b_ROT_Prism4.3D.xml.jpg
   :width: 30 %

.. |01c_ROT_Cylinder| image:: ../_static/On2DCurves/RevolutionOpen/01c_ROT_Cylinder.3D.xml.jpg
   :width: 30 %



**Left figure**: Prism3

**Right figure**: Prism4

**Right figure**: Cylinder








|newpage|


Pyramid and cone
------------------------------------------------------



|02a_ROT_Pyramid3_surface| `\quad` |02b_ROT_Pyramid4_surface| `\quad` |02c_ROT_Cone_surface|

.. |02a_ROT_Pyramid3_surface| image:: ../_static/On2DCurves/RevolutionOpen/02a_ROT_Pyramid3_surface.3D.xml.jpg
   :width: 30 %

.. |02b_ROT_Pyramid4_surface| image:: ../_static/On2DCurves/RevolutionOpen/02b_ROT_Pyramid4_surface.3D.xml.jpg
   :width: 30 %

.. |02c_ROT_Cone_surface| image:: ../_static/On2DCurves/RevolutionOpen/02c_ROT_Cone_surface.3D.xml.jpg
   :width: 30 %



**Left figure**: Pyramid3

**Right figure**: Pyramid4

**Right figure**: Cone







|newpage|


Frustum  and cone frustum
------------------------------------------------------



|03a_ROT_Frustum3_surface| `\quad` |03b_ROT_Frustum4_surface| `\quad` |03c_ROT_ConeFrustum_surface|

.. |03a_ROT_Frustum3_surface| image:: ../_static/On2DCurves/RevolutionOpen/03a_ROT_Frustum3_surface.3D.xml.jpg
   :width: 30 %

.. |03b_ROT_Frustum4_surface| image:: ../_static/On2DCurves/RevolutionOpen/03b_ROT_Frustum4_surface.3D.xml.jpg
   :width: 30 %

.. |03c_ROT_ConeFrustum_surface| image:: ../_static/On2DCurves/RevolutionOpen/03c_ROT_ConeFrustum_surface.3D.xml.jpg
   :width: 30 %



**Left figure**: Frustum3

**Right figure**: Frustum4

**Right figure**: Cone Frustum






|newpage|


Insolator
---------------------------------------------------


See also: http://www.3d-meier.de/tut3/Seite86.html, Insolator




|04a_ROT_Insolator_surface|

.. |04a_ROT_Insolator_surface| image:: ../_static/On2DCurves/RevolutionOpen/04a_ROT_Insolator_surface.3D.xml.jpg
   :width: 30 %



**Left figure**: Insolator






|newpage|


Gabriels Horn
--------------------------------------------


See also: https://mathworld.wolfram.com/GabrielsHorn.html

See also  Wikipedia :cite:p:`Wikipedia2D101`,  MathWorld :cite:p:`Wolfram3D101`.




|05a_ROT_GabrielHorn_surface|

.. |05a_ROT_GabrielHorn_surface| image:: ../_static/On2DCurves/RevolutionOpen/05a_ROT_GabrielHorn_surface.3D.xml.jpg
   :width: 30 %



**Left figure**: Gabriels Horn








|newpage|


Funnel
-------------------------------------------------


// see https://mathworld.wolfram.com/Funnel.html
// see http://www.3d-meier.de/tut3/Seite28.html
// see http://www.3d-meier.de/tut3/Seite27.html

See also  Wikipedia :cite:p:`Wikipedia2D101`,  MathWorld :cite:p:`Wolfram3D101`.




|06a_ROT_Funnel_surface|

.. |06a_ROT_Funnel_surface| image:: ../_static/On2DCurves/RevolutionOpen/06a_ROT_Funnel_surface.3D.xml.jpg
   :width: 30 %



**Left figure**: Funnel






|newpage|


One-Sheeted Hyperboloid
------------------------------------------


See also: https://mathworld.wolfram.com/One-SheetedHyperboloid.html

See also: https://en.wikipedia.org/wiki/Hyperboloid




|07a_ROT_Hyperboloid_surface|

.. |07a_ROT_Hyperboloid_surface| image:: ../_static/On2DCurves/RevolutionOpen/07a_ROT_Hyperboloid_surface.3D.xml.jpg
   :width: 30 %



**Left figure**: One-Sheeted Hyperboloid








|newpage|


Catenoid
-----------------------------------------


See also: https://mathworld.wolfram.com/Catenoid.html

See also  Wikipedia :cite:p:`Wikipedia2D101`,  MathWorld :cite:p:`Wolfram3D101`.





|08a_ROT_Catenoid_surface|

.. |08a_ROT_Catenoid_surface| image:: ../_static/On2DCurves/RevolutionOpen/08a_ROT_Catenoid_surface.3D.xml.jpg
   :width: 30 %



**Left figure**: Catenoid







|newpage|


Gauss Cylinder
---------------------------------------------


See also: http://www.3d-meier.de/tut3/Seite157.html    Gauss Cylinder

See also  Wikipedia :cite:p:`Wikipedia2D101`,  MathWorld :cite:p:`Wolfram3D101`.




|09a_ROT_GCylinder_surface| `\quad` |09b_ROT_GCylinder_surface|

.. |09a_ROT_GCylinder_surface| image:: ../_static/On2DCurves/RevolutionOpen/09a_ROT_GCylinder_surface.3D.xml.jpg
   :width: 30 %

.. |09b_ROT_GCylinder_surface| image:: ../_static/On2DCurves/RevolutionOpen/09b_ROT_GCylinder_surface.3D.xml.jpg
   :width: 30 %



**Left figure**: Gauss Cylinder

**Right figure**: Gauss Cylinder










|newpage|


Paraboloid
-------------------------------------





|10a_ROT_Paraboloid_surface|

.. |10a_ROT_Paraboloid_surface| image:: ../_static/On2DCurves/RevolutionOpen/10a_ROT_Paraboloid_surface.3D.xml.jpg
   :width: 30 %



**Left figure**: Paraboloid







|newpage|

Vase
-----------------------------------



|11a_ROT_Vase| `\quad` |11b_ROT_Vase|

.. |11a_ROT_Vase| image:: ../_static/On2DCurves/RevolutionOpen/11a_ROT_Vase.3D.xml.jpg
   :width: 30 %

.. |11b_ROT_Vase| image:: ../_static/On2DCurves/RevolutionOpen/11b_ROT_Vase.3D.xml.jpg
   :width: 30 %



**Left figure**: Vase

**Right figure**: Vase





|newpage|





Sphere
------------------------------------------------------------------------------------------

.. method:: User.ParametricSphere(a, Resolution, Revolution = true)



See also: http://www.3d-meier.de/tut3/Seite86.html, Sphere




|TestSphere_a| 

.. |TestSphere_a| image:: ../_static/On2DCurves/RevolutionClosed/01a_ROT_Sphere_surface.3D.xml.jpg
   :width: 30 %


**Left figure**: Sphere





|01b_ROT_Sphere_lower_half| `\quad` |01c_ROT_Sphere_right_half| `\quad` |01d_ROT_Sphere_quarter|

.. |01b_ROT_Sphere_lower_half| image:: ../_static/On2DCurves/RevolutionClosed/01b_ROT_Sphere_lower_half.3D.xml.jpg
   :width: 30 %

.. |01c_ROT_Sphere_right_half| image:: ../_static/On2DCurves/RevolutionClosed/01c_ROT_Sphere_right_half.3D.xml.jpg
   :width: 30 %

.. |01d_ROT_Sphere_quarter| image:: ../_static/On2DCurves/RevolutionClosed/01d_ROT_Sphere_quarter.3D.xml.jpg
   :width: 30 %



**Left figure**: Gear torus surface

**Middle figure**: Gear torus surface

**Right figure**: Gear torus surface





|newpage|


Prolate Spheroid
----------------------------------------------------

.. method:: User.ProlateSpheroid(a, Resolution, Revolution = true)



See also: http://paulbourke.net/geometry/spherical/   prolate spheroid, or ellipsoid of revolution
See also: https://en.wikipedia.org/wiki/Ellipsoid#Parameterization  ellipsoid of revolution
See also: https://mathworld.wolfram.com/OblateSpheroid.html  Oblate Spheroid





|ProlateSpheroid_small_a| `\quad` |ProlateSpheroid_small_b|

.. |ProlateSpheroid_small_a| image:: ../_static/On2DCurves/RevolutionClosed/03a_ROT_ProlateSpheroid_surface.3D.xml.jpg
   :width: 30 %

.. |ProlateSpheroid_small_b| image:: ../_static/On2DCurves/RevolutionClosed/03b_ROT_ProlateSpheroidSqrt.3D.xml.jpg
   :width: 30 %



**Left figure**: Prolate Spheroid.

**Right figure**: Prolate Spheroid via Sqrt.






|newpage|


Oblate Spheroid
----------------------------------------------------

.. method:: User.OblateSpheroid(a, Resolution, Revolution = true)


See also: http://paulbourke.net/geometry/spherical/   prolate spheroid, or ellipsoid of revolution
See also: https://en.wikipedia.org/wiki/Ellipsoid#Parameterization  ellipsoid of revolution
See also: https://mathworld.wolfram.com/OblateSpheroid.html  Oblate Spheroid




        


|OblateSpheroid_small_a| `\quad` |OblateSpheroid_small_b|

.. |OblateSpheroid_small_a| image:: ../_static/On2DCurves/RevolutionClosed/04a_ROT_OblateSpheroid_surface.3D.xml.jpg
   :width: 30 %

.. |OblateSpheroid_small_b| image:: ../_static/On2DCurves/RevolutionClosed/04b_ROT_OblateSpheroidSqrt.3D.xml.jpg
   :width: 30 %



**Left figure**: Prolate Spheroid.

**Right figure**: Prolate Spheroid via Sqrt.











|newpage|


Drop surface
-------------------------------------------------



// see http://www.3d-meier.de/tut3/Seite44.html



    An example in Python

    .. code-block:: pycon

        >>> from mpfebnet import User
        >>> Curve = User.Cardioid(a = 1, Resolution = 200, AsPolar = true)
        >>> User.Chart2D.Show(Curve, Template = 'PolarCurve', Title = 'Cardioid')

    An example in C\#

    .. code-block:: csharp

        using User;
        Curve = User.Cardioid(a: 1, Resolution: 200, AsPolar: true);
        User.Chart2D.Show(Curve, Template = "PolarCurve", Title = "Cardioid");


        


|07a_ROT_Drop_Surface|


.. |07a_ROT_Drop_Surface| image:: ../_static/On2DCurves/RevolutionClosed/07a_ROT_Drop_Surface.3D.xml.jpg
   :width: 30 %



**Left figure**: Drop surface












|newpage|



Apple surface
--------------------------------------------------------------------
Examples in Bourke, towards the end of the page

// see http://www.3d-meier.de/tut3/Seite54.html

https://paulbourke.net/geometry/spherical/

For the apple surface, also see Meier




|09a_ROT_Apple_Surface|


.. |09a_ROT_Apple_Surface| image:: ../_static/On2DCurves/RevolutionClosed/09a_ROT_Apple_Surface.3D.xml.jpg
   :width: 30 %



**Left figure**: Apple surface








|newpage|


Spinning top
-------------------------------------------------------------------------
.. method:: User.SpinningTop(a, Resolution, Revolution = true)


See also  http://www.3d-meier.de/tut3/Seite150.html    Kreisel

See also  Wikipedia :cite:p:`Wikipedia2D101`,  MathWorld :cite:p:`Wolfram3D101`.




|11a_ROT_Spinningtop_surface|


.. |11a_ROT_Spinningtop_surface| image:: ../_static/On2DCurves/RevolutionClosed/11a_ROT_Spinningtop_surface.3D.xml.jpg
   :width: 30 %



**Left figure**: Spinning top











|newpage|


Pseudosphere
-----------------------------------------------------------

.. method:: User.Pseudosphere(a, Resolution, Revolution = true)


See also: https://mathworld.wolfram.com/Pseudosphere.html

// see http://www.3d-meier.de/tut3/Seite28.html



    An example in Python

    .. code-block:: pycon

        >>> from mpfebnet import User
        >>> Curve = User.Cardioid(a = 1, Resolution = 200, AsPolar = true)
        >>> User.Chart2D.Show(Curve, Template = 'PolarCurve', Title = 'Cardioid')

    An example in C\#

    .. code-block:: csharp

        using User;
        Curve = User.Cardioid(a: 1, Resolution: 200, AsPolar: true);
        User.Chart2D.Show(Curve, Template = "PolarCurve", Title = "Cardioid");



|12a_ROT_Pseudosphere_ROT0b_surface| `\quad` |12b_ROT_Pseudosphere|

.. |12a_ROT_Pseudosphere_ROT0b_surface| image:: ../_static/On2DCurves/RevolutionClosed/12a_ROT_Pseudosphere_ROT0b_surface.3D.xml.jpg
   :width: 30 %

.. |12b_ROT_Pseudosphere| image:: ../_static/On2DCurves/RevolutionClosed/12b_ROT_Pseudosphere.3D.xml.jpg
   :width: 30 %


**Left figure**: Pseudosphere 

**Right figure**: Pseudosphere 







|newpage|


Wave sphere Surface
--------------------------------------------------------------------------------------



// see http://www.3d-meier.de/tut3/Seite63.html


|13a_ROT_WaveSphere| `\quad` |13b_ROT_WaveSphere|

.. |13a_ROT_WaveSphere| image:: ../_static/On2DCurves/RevolutionClosed/13a_ROT_WaveSphere.3D.xml.jpg
   :width: 30 %

.. |13b_ROT_WaveSphere| image:: ../_static/On2DCurves/RevolutionClosed/13b_ROT_WaveSphere.3D.xml.jpg
   :width: 30 %


**Left figure**: Wave sphere Surface 

**Right figure**: Wave sphere Surface 







Low resolution torus surface, part1
-----------------------------------------------------------------------------------------



// see https://mathworld.wolfram.com/Torus.html

See also  Wikipedia :cite:p:`Wikipedia2D101`,  MathWorld :cite:p:`Wolfram3D101`.





|91a_ROT_Torus_surface| `\quad` |91b_ROT_Torus_surface| `\quad` |91c_ROT_Torus_surface|

.. |91a_ROT_Torus_surface| image:: ../_static/On2DCurves/RevolutionTori/91a_ROT_Torus_surface.3D.xml.jpg
   :width: 30 %

.. |91b_ROT_Torus_surface| image:: ../_static/On2DCurves/RevolutionTori/91b_ROT_Torus_surface.3D.xml.jpg
   :width: 30 %

.. |91c_ROT_Torus_surface| image:: ../_static/On2DCurves/RevolutionTori/91c_ROT_Torus_surface.3D.xml.jpg
   :width: 30 %



**Left figure**: Low resolution torus surface, part1

**Middle figure**: Low resolution torus surface, part1

**Right figure**: Low resolution torus surface, part1








|newpage|



Low resolution torus surface, part2
-----------------------------------------------------------------------------------------



See also: http://www.3d-meier.de/tut3/Seite165.html

See also  Wikipedia :cite:p:`Wikipedia2D101`,  MathWorld :cite:p:`Wolfram3D101`.





|92a_ROT_Torus_surface| `\quad` |92b_ROT_Torus_surface| `\quad` |92c_ROT_Torus_surface|

.. |92a_ROT_Torus_surface| image:: ../_static/On2DCurves/RevolutionTori/92a_ROT_Torus_surface.3D.xml.jpg
   :width: 30 %

.. |92b_ROT_Torus_surface| image:: ../_static/On2DCurves/RevolutionTori/92b_ROT_Torus_surface.3D.xml.jpg
   :width: 30 %

.. |92c_ROT_Torus_surface| image:: ../_static/On2DCurves/RevolutionTori/92c_ROT_Torus_surface.3D.xml.jpg
   :width: 30 %



**Left figure**: Low resolution torus surface, part1

**Middle figure**: Low resolution torus surface, part1

**Right figure**: Low resolution torus surface, part1






|newpage|



Low resolution torus surface, part3
-----------------------------------------------------------------------------------------



See also: http://www.3d-meier.de/tut3/Seite165.html

See also  Wikipedia :cite:p:`Wikipedia2D101`,  MathWorld :cite:p:`Wolfram3D101`.





|93a_ROT_Torus_surface| `\quad` |93b_ROT_Torus_surface| `\quad` |93c_ROT_Torus_surface|

.. |93a_ROT_Torus_surface| image:: ../_static/On2DCurves/RevolutionTori/93a_ROT_Torus_surface.3D.xml.jpg
   :width: 30 %

.. |93b_ROT_Torus_surface| image:: ../_static/On2DCurves/RevolutionTori/93b_ROT_Torus_surface.3D.xml.jpg
   :width: 30 %

.. |93c_ROT_Torus_surface| image:: ../_static/On2DCurves/RevolutionTori/93c_ROT_Torus_surface.3D.xml.jpg
   :width: 30 %



**Left figure**: Low resolution torus surface, part1

**Middle figure**: Low resolution torus surface, part1

**Right figure**: Low resolution torus surface, part1





|newpage|


Torus
-----------------------------------------------------------------------------------------


.. method:: User.Torus(a, Resolution, Revolution = true)


See also  Wikipedia :cite:p:`Wikipedia2D101`,  MathWorld :cite:p:`Wolfram3D101`.



    An example in Python

    .. code-block:: pycon

        >>> from mpfebnet import User
        >>> Curve = User.Cardioid(a = 1, Resolution = 200, AsPolar = true)
        >>> User.Chart2D.Show(Curve, Template = 'PolarCurve', Title = 'Cardioid')

    An example in C\#

    .. code-block:: csharp

        using User;
        Curve = User.Cardioid(a: 1, Resolution: 200, AsPolar: true);
        User.Chart2D.Show(Curve, Template = "PolarCurve", Title = "Cardioid");



|01a_ROT_Torus_surface| `\quad` |01b_ROT_Torus_lower_half| `\quad` |01c_ROT_Torus_right_half|

.. |01a_ROT_Torus_surface| image:: ../_static/On2DCurves/RevolutionTori/01a_ROT_Torus_surface.3D.xml.jpg
   :width: 30 %

.. |01b_ROT_Torus_lower_half| image:: ../_static/On2DCurves/RevolutionTori/01b_ROT_Torus_lower_half.3D.xml.jpg
   :width: 30 %

.. |01c_ROT_Torus_right_half| image:: ../_static/On2DCurves/RevolutionTori/01c_ROT_Torus_right_half.3D.xml.jpg
   :width: 30 %



**Left figure**: Torus

**Middle figure**: Torus

**Right figure**: Torus







|newpage|


Horn Torus
----------------------------------------------------------------------------------------------



See also  Wikipedia :cite:p:`Wikipedia2D101`,  MathWorld :cite:p:`Wolfram3D101`.



    An example in Python

    .. code-block:: pycon

        >>> from mpfebnet import User
        >>> Curve = User.Cardioid(a = 1, Resolution = 200, AsPolar = true)
        >>> User.Chart2D.Show(Curve, Template = 'PolarCurve', Title = 'Cardioid')

    An example in C\#

    .. code-block:: csharp

        using User;
        Curve = User.Cardioid(a: 1, Resolution: 200, AsPolar: true);
        User.Chart2D.Show(Curve, Template = "PolarCurve", Title = "Cardioid");



|02a_ROT_HornTorus_surface| `\quad` |02b_ROT_HornTorus_lower_half| `\quad` |02c_ROT_HornTorus_right_half|

.. |02a_ROT_HornTorus_surface| image:: ../_static/On2DCurves/RevolutionTori/02a_ROT_HornTorus_surface.3D.xml.jpg
   :width: 30 %

.. |02b_ROT_HornTorus_lower_half| image:: ../_static/On2DCurves/RevolutionTori/02b_ROT_HornTorus_lower_half.3D.xml.jpg
   :width: 30 %

.. |02c_ROT_HornTorus_right_half| image:: ../_static/On2DCurves/RevolutionTori/02c_ROT_HornTorus_right_half.3D.xml.jpg
   :width: 30 %



**Left figure**: Horn Torus

**Middle figure**: Horn Torus

**Right figure**: Horn Torus





|newpage|


Spindle Torus
----------------------------------------------------------------------------------------------


See also: https://mathworld.wolfram.com/EllipticTorus.html

See also  Wikipedia :cite:p:`Wikipedia2D101`,  MathWorld :cite:p:`Wolfram3D101`.



    An example in Python

    .. code-block:: pycon

        >>> from mpfebnet import User
        >>> Curve = User.Cardioid(a = 1, Resolution = 200, AsPolar = true)
        >>> User.Chart2D.Show(Curve, Template = 'PolarCurve', Title = 'Cardioid')

    An example in C\#

    .. code-block:: csharp

        using User;
        Curve = User.Cardioid(a: 1, Resolution: 200, AsPolar: true);
        User.Chart2D.Show(Curve, Template = "PolarCurve", Title = "Cardioid");



|03a_ROT_SpindleTorus_surface| `\quad` |03b_ROT_SpindleTorus_lower_half| `\quad` |03c_ROT_SpindleTorus_right_half|

.. |03a_ROT_SpindleTorus_surface| image:: ../_static/On2DCurves/RevolutionTori/03a_ROT_SpindleTorus_surface.3D.xml.jpg
   :width: 30 %

.. |03b_ROT_SpindleTorus_lower_half| image:: ../_static/On2DCurves/RevolutionTori/03b_ROT_SpindleTorus_lower_half.3D.xml.jpg
   :width: 30 %

.. |03c_ROT_SpindleTorus_right_half| image:: ../_static/On2DCurves/RevolutionTori/03c_ROT_SpindleTorus_right_half.3D.xml.jpg
   :width: 30 %



**Left figure**: Spindle Torus

**Middle figure**: Spindle Torus

**Right figure**: Spindle Torus





|newpage|


Elliptic Torus
----------------------------------------------------------------------------------------------

.. method:: User.EllipticTorus(a, Resolution, Revolution = true)


See also: https://mathworld.wolfram.com/EllipticTorus.html

See also  Wikipedia :cite:p:`Wikipedia2D101`,  MathWorld :cite:p:`Wolfram3D101`.



    An example in Python

    .. code-block:: pycon

        >>> from mpfebnet import User
        >>> Curve = User.Cardioid(a = 1, Resolution = 200, AsPolar = true)
        >>> User.Chart2D.Show(Curve, Template = 'PolarCurve', Title = 'Cardioid')

    An example in C\#

    .. code-block:: csharp

        using User;
        Curve = User.Cardioid(a: 1, Resolution: 200, AsPolar: true);
        User.Chart2D.Show(Curve, Template = "PolarCurve", Title = "Cardioid");




|04a_ROT_EllipticTorus| `\quad` |04b_ROT_EllipticTorus|

.. |04a_ROT_EllipticTorus| image:: ../_static/On2DCurves/RevolutionTori/04a_ROT_EllipticTorus.3D.xml.jpg
   :width: 30 %

.. |04b_ROT_EllipticTorus| image:: ../_static/On2DCurves/RevolutionTori/04a_ROT_EllipticTorus.3D.xml.jpg
   :width: 30 %



**Left figure**: Spindle Torus

**Right figure**: Spindle Torus










