# Torus

In geometry, a torus (pl. tori) is a surface of revolution generated by revolving a circle in three dimensional space about an axis coplanar with the circle. Examples of tori include the surfaces of donuts and inner tubes.

In addition to the common donut torus shape, there are several other forms of a torus. For instance, if the hole in the middle of a torus collapses to a single point, the torus is called a vortex torus. A torus may also have the shape of an apple or lemon. Donut, apple, lemon, and vortex tori are shown in the figures below.

 Donut torus Apple torus Lemon torus Vortex torus

Toroidal Surface Definition

The apple, lemon and vortex torus are all degenerate forms. It is not valid for major_radius to be both negative and numerically larger than minor_radius. Note that the lemon and apple have the same mathematical form, and differ only in their range of definition (not in the parametric range sense). The sign of major_radius indicates which portion of the surface is defined. (If the major_radius is positive an apple torus is defined; if it is negative, a lemon torus is defined.) The value of minor_radius is negative if the torus is hollow. In other words, if the minor_radius is positive, the surface normal points outward; if it is negative, the surface normal points inward.

Four further data members define the parameterization of the torus:

• normal is the normal of the plane containing the circular spine. This is a SPAunit_vector.
• centre is the center of the torus. This is a SPAposition.
• uv_oridir is the direction from the center of the torus to the origin of parameter space. This is a SPAunit_vector.
• reverse_v is a flag specifying the direction of the constant $u\,\!$-parameter lines, which are circles around the torus axis. The direction is specified by the right-hand rule around the torus axis, but may be reversed if this flag is true.

## Parametric Form

A torus is defined by a circular spine and a circular cross-section at each point on the spine. The spine of a torus is defined by a center point (centre), axis direction (normal), and major radius (major_radius). The circular cross-section is defined by a minor radius (minor_radius). Each circular cross-section is centered on the spline curve and is in a plane perpendicular to it. The parametric equation for a torus is:

$\bold{P}(u,v) = \bold C + |r| \ \sin{u} \ \bold{\hat{P}} + ( R + |r| \ \cos{u} ) ( \ \cos{v} \ \bold{\hat{Q}} + \sin{v} \ \bold{\hat{R}} \ )$

where

 $R\,\!$ is major_radius, $r\,\!$ is minor_radius, $\bold C$ is the center point (centre), $\bold{\hat{P}}$ is the axis (normal), $\bold{\hat{Q}}$ is uv_oridir, $\bold{\hat{R}}$ $= \bold{\hat{P}} \times \bold{\hat{Q}}$, which is negated if reverse_v is TRUE,
A Convex Torus with a Left-Handed uv Coordinate System
(reverse_v is FALSE)

The $u\,\!$-parameter is the latitude, with zero on the circle of greatest radius about the torus axis, and the positive direction in the direction of the torus axis. The $u\,\!$-parameter range depends upon the relative values of the major and minor radii. For a donut, where the major radius is greater than the magnitude of the minor, the default (unsubsetted) range runs from $-\pi\,\!$ to $\pi\,\!$, and it is periodic. For degenerate tori, where the magnitude of the major axis is less than or equal to the magnitude of the minor axis, the default range is from $-U\,\!$ to $U\,\!$, where

$U = \arccos{\left(-\frac{R}{\left | r \right |} \right)}$,

and the surface is singular at each end of the range. (A $u\,\!$-parameter curve runs in the direction of increasing $u\,\!$ parameter with a constant $v\,\!$ value. The range of a $u\,\!$-parameter curve is the same as the $u\,\!$-parameter range of the torus.)

The $v\,\!$-parameter is the longitude, and the default (unsubsetted) range runs from $-\pi\,\!$ to $\pi\,\!$, with 0.0 on the meridian containing uv_oridir, and increasing in the direction specified by the right-hand rule around the torus axis, unless reverse_v is TRUE when it increases in the opposite direction. (A $v\,\!$-parameter curve runs in the direction of increasing $v\,\!$ parameter with a constant $u\,\!$ value. The range of a $v\,\!$-parameter curve is the same as the $v\,\!$-parameter range of the torus.)

The apple and lemon types are distinguished by negating the major_radius for a lemon: this changes the points returned by the formula above.

This parameterization is left-handed for a convex torus and right-handed for a hollow one, if reverse_v is FALSE, and reversed if it is TRUE. When the torus is transformed, the sense of reverse_v is inverted if the transform includes a reflection. No special action is required for a negation.

The variables uv_oridir, pole_dir and reverse_v define the torus parametrization and are consistent with the same variables used for spheres.

## Torus Characteristics

• Tori are not true parametric surfaces.
• Tori are closed in $v\,\!$ but can or cannot be closed in $u\,\!$.
• Degenerate tori are not periodic in $u\,\!$; non-degenerate tori are periodic in $u\,\!$ with period $2\pi\,\!$ with range [$-\pi\,\!$ , $\pi\,\!$).
• All tori are periodic in $v\,\!$ with period $2\pi\,\!$ with range [$-\pi\,\!$ , $\pi\,\!$).
• Degenerate tori are singular in $u\,\!$ at the poles (apices): all other values of $u\,\!$ and $v\,\!$ are non-singular.