Generalisations of common surfaces#

Parametric Surfaces: \(x=f(u,v),\) \(y=g(u,v),\) \(z=h(u,v)\)

Ellipsoid#

The parametric equations of an ellipsoid can be written as

\[x(u, v) = a \cos(u) \sin(v),\]
\[y(u, v) = b \sin(u) \sin(v),\]
\[z(u, v) = r \sin(t),\]

for \(u \in [0, 2 \pi)\) and \(v \in [0, \pi]\).

See also: http://paulbourke.net/geometry/spherical/ See also: https://mathcurve.com/surfaces.gb/lame/lame.shtml See also: https://mathworld.wolfram.com/Ellipsoid.html

See also Gray et al. [368], Krivoshapko and Ivanov [421].

var a = 1.0;
var b = 2.0;
var c = 3.0;
var x = a * Math.Cos(u) * Math.Cos(v);
var y = b * Math.Cos(u) * Math.Sin(v);
var z = c * Math.Sin(u);

If the lengths of two axes of an ellipsoid are the same, the figure is called an ellipsoid of revolution or spheroid. Denote the equal semi-axes lengths of a spheroid \(a=b\), call \(a\) the equatorial radius, and call the other semi-axis length the polar radius \(c\). Then if \(a>c\), the spheroid is called an oblate spheroid, and if \(a<c\), the spheroid is called an prolate spheroid. If all three semi-axes lengths are the same so \(a=b=c\), the ellipsoid is a sphere.

picEllipsoid_a \(\quad\) picEllipsoid_b

Left figure: Ellipsoid

Right figure: Ellipsoid

Superellipsoid#

Superellipsoid is the name given to a family of shapes formed from the spherical product of two superquadratric curves. These shapes can be used to model a wide range of shapes including spheres, cylinders, and parallelepipeds as well as shapes in between. The parametric equations of an superellipsoid can be written as

\[x(u, v) = \mathrm{sgn}(\cos(u)) \cdot |\cos(u)| ^{p1} \cdot \mathrm{sgn}(\cos(v)) \cdot |\cos(v)|^{p2},\]
\[y(u, v) = \mathrm{sgn}(\cos(u)) \cdot |\cos(u)| ^{p1} \cdot \mathrm{sgn}(\sin(v)) \cdot |\sin(v)|^{p2},\]
\[z(u, v) = \mathrm{sgn}(\sin(u)) \cdot |\sin(u)|^{p1},\]

where \(\displaystyle \frac{-\pi}{2} \le u \le \frac{\pi}{2}\), \(-\pi \le v \le \pi\), and \(0 < p1, p2 < \infty\).

double p1 = 2.0;
double p2 = 3.8;

double u = u;
double v = v;

\cos(u) = Math.Cos(u);
\cos(v) = Math.Cos(v);
\sin(u) = Math.Sin(u);
\sin(v) = Math.Sin(v);

tmp  = Math.Sign(\cos(u)) * Math.Pow(Math.Abs(\cos(u)),p1);
x = tmp * Math.Sign(\cos(v)) * Math.Pow(Math.Abs(\cos(v)),p2);
y = -Math.Sign(\sin(u)) * Math.Pow(Math.Abs(\sin(u)),p1);
z = tmp * Math.Sign(\sin(v)) * Math.Pow(Math.Abs(\sin(v)),p2);

See also: http://paulbourke.net/geometry/spherical/ See also: https://en.wikipedia.org/wiki/Superellipsoid See also: https://mathcurve.com/surfaces.gb/lame/lame.shtml See also: https://mathworld.wolfram.com/Ellipsoid.html See also: https://mathworld.wolfram.com/Superellipsoid.html

See also Gray et al. [368], Krivoshapko and Ivanov [421].

TestSuperEllipse_a \(\quad\) TestSuperEllipse_b

Left figure: Superellipsoid

Right figure: Superellipsoid

Hexaedron#

See also Wikipedia [1484], MathWorld [1160].

TestHexaedron_a \(\quad\) TestHexaedron_b

Left figure: Hexaedron (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Hexaedron (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

double cosu = Math.Cos(u);
double sinu = Math.Sin(u);
double cosv = Math.Cos(v);
double sinv = Math.Sin(v);
x = cosv * cosv * cosv * cosu * cosu * cosu;
y = -sinu * sinu * sinu;
z = sinv * sinv * sinv * cosu * cosu * cosu;

Super Toroid#

See also: http://paulbourke.net/geometry/toroidal/

TestSuperToroid_a \(\quad\) TestSuperToroid_b

Left figure: Super Toroid (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Super Toroid (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

double r0 = 1;
double r1 = 0.3;

double tmp;
double ct1,ct2,st1,st2;

double p1 = 2.0;
double p2 = 3.8;
double t1 = u;
double t2 = v;

ct1 = Math.Cos(t1);
ct2 = Math.Cos(t2);
st1 = Math.Sin(t1);
st2 = Math.Sin(t2);

tmp  = r0 + r1 * Math.Sign(ct2) * Math.Pow(Math.Abs(ct2),p2);

x = tmp * Math.Sign(ct1) * Math.Pow(Math.Abs(ct1),p1);
y = -tmp * Math.Sign(st1) * Math.Pow(Math.Abs(st1),p1);
z = r1 * Math.Sign(st2) * Math.Pow(Math.Abs(st2),p2);

Elliptic Helicoid#

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

See also Wikipedia [1484], MathWorld [1160].

TestEllipticHelicoid_a \(\quad\) TestEllipticHelicoid_b

Left figure: Elliptic Helicoid (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Elliptic Helicoid (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

double a = 0.5;
double b = 1.5;
double c = 1;
double su = Math.Sin(u);
double cu = Math.Cos(u);

x = a * v * cu;
z = b * v * su;
y = c * u;

Hyperbolic Helicoid#

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

See also Wikipedia [1484], MathWorld [1160].

TestHyperhelicoid_a \(\quad\) TestHyperhelicoid_b

Left figure: Hyperbolic Helicoid (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Hyperbolic Helicoid (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

x = (Math.Sinh(v) * Math.Cos(3 * u)) / (1 + Math.Cosh(u) * Math.Cosh(v));
y = (Math.Cosh(v) * Math.Sinh(u)) / (1 + Math.Cosh(u) * Math.Cosh(v));
z = (Math.Sinh(v) * Math.Sin(3 * u)) / (1 + Math.Cosh(u) * Math.Cosh(v));

Lemniscape#

See also: http://paulbourke.net/geometry/lemniscape/

var x = Math.Cos(v) * Math.Sqrt(Math.Abs(Math.Sin(2 * u))) * Math.Cos(u);
var y = Math.Cos(v) * Math.Sqrt(Math.Abs(Math.Sin(2 * u))) * Math.Sin(u);
var z = x * x - y * y + 2 * x * y * Math.Tan(v) * Math.Tan(v);

TestLemnescate_a \(\quad\) TestLemnescate_b

Left figure: Lemniscape (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Lemniscape (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

Bohemian Dome#

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

See also Wikipedia [1484], MathWorld [1160].

var a = 0.5;
var b = 1.5;
var c = 1;
var su = Math.Sin(u);
var sv = Math.Sin(v);
var cu = Math.Cos(u);
var cv = Math.Cos(v);

var x = a * cu;
var z = b * cv + a * su;
var y = c * sv;

TestBohemianDome_a \(\quad\) TestBohemianDome_b

Left figure: Bohemian Dome (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Bohemian Dome (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

Dupin1 surface#

See also: https://mathcurve.com/surfaces.gb/cycliddedupin/cyclidededupin.shtml

See also: https://en.wikipedia.org/wiki/Dupin_cyclide#Elliptic_cyclides

See also Wikipedia [1484], MathWorld [1160].

picTestDupin1 \(\quad\) picTestDupin2

Left figure: Dupin1 Surface (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Dupin1 Surface (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

double a = 1.5;
double b = 1.4;
double c = Math.Sqrt(a*a-b*b);
double d = b/2;
double su = Math.Sin(u);
double sv = Math.Sin(v);
double cu = Math.Cos(u);
double cv = Math.Cos(v);
double den = a - c * cu * cv;

x = (d * (c - a * cu * cv) + b*b * cu )   / den;
y = -(b * su * (a - d * cv)) / den;
z = (b * sv * (c * cu - d)) / den;

Dupin2 surface#

See also: https://mathcurve.com/surfaces.gb/cycliddedupin/cyclidededupin.shtml

See also: https://en.wikipedia.org/wiki/Dupin_cyclide#Parabolic_cyclides

See also Wikipedia [1484], MathWorld [1160].

TestDupin2_a \(\quad\) TestDupin2_b

Left figure: Dupin2 Surface (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Dupin2 Surface (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

double p = 2;
double k = 0.7;
double den = 1 + u*u + v*v;
x = 0.5*p * (2*v*v + k*(1-u*u-v*v)) / den;
z = p*u * (v*v+k) / den;
y = p*v * (1+u*u-k) / den;

Dinis Surface (twisted pseudosphere)#

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

See also Wikipedia [1484], MathWorld [1160].

picTestDini1 \(\quad\) picTestDini2

Left figure: Dinis Surface (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Dinis Surface (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

double a = Math.Cos(u);
double b = Math.Sin(u);
double c = Math.Cos(v);
double a2 = a * a;
double a4 = a2 * a2;

x = -(2.0 / 15.0) * a * (3 * c + b * (-30 + a4 * (90 - 60 * a2) + 5 * a * c));
z = -(1.0 / 15.0) * b * b * (c * b * (3 - 48 * a4 + 5 * a * b * (1 - 16 * a4)) - 60);
y = (2.0 / 15.0) * (3 + 5 * a * b) * Math.Sin(v);

Left figure: Dinis Surface (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Dinis Surface (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

Plueckers conoid#

// See : https://mathworld.wolfram.com/PlueckersConoid.html // See : Gray, p. 436 // See : https://en.wikipedia.org/wiki/Pl%C3%BCcker%27s_conoid

x = u * Math.Sqrt(1 - v*v);
y = u*v;
z = 1 - v*v;

TestPluecker_a \(\quad\) TestPluecker_b \(\quad\) TestPluecker_c

Left figure: Plueckers Conoid (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Middle figure: Plueckers Conoid (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Plueckers Conoid (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

References

Gray, A. “Plücker’s Conoid.” Modern Differential Geometry of Curves and Surfaces with Mathematica, 2nd ed. Boca Raton, FL: CRC Press, pp. 435-437, 1997.

Umbilic Torus#

// See also: http://www.3d-meier.de/tut3/Seite61.html // Umbilic Torus

TestUmbilicTorus

Left figure: Umbilic Torus (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Skidian’s ruled surface#

// See also: http://www.3d-meier.de/tut3/Seite227.html // Skidan Ruled Surface // See Krivoshapko, p. 499

TestSkidan_a \(\quad\) TestSkidan_b \(\quad\) TestSkidan_c

Left figure: Skidian’s ruled surface (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Middle figure: Skidian’s ruled surface (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Skidian’s ruled surface (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

Umbrella surface#

// See also: http://www.3d-meier.de/tut3/Seite215.html // Umbrella Surface // See Krivoshapko, p. 507 - 509 // See Krivoshapko, p. 513 - 515 // See Krivoshapko, p. 521, 526, 530, 531, 533

TestUmbrella

Left figure: Umbrella surface (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Cyclic surfaces (generalized torus)#

// See Krivoshapko, p. 376

CyclicSurface_a \(\quad\) CyclicSurface_b \(\quad\) CyclicSurface_c

Left figure: Cyclic surfaces (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Middle figure: Cyclic surfaces (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Cyclic surfaces (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

CyclicSurface_d \(\quad\) CyclicSurface_e \(\quad\) CyclicSurface_f

Left figure: Cyclic surfaces (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Middle figure: Cyclic surfaces (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Cyclic surfaces (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

CyclicSurface_g \(\quad\) CyclicSurface_h \(\quad\) CyclicSurface_i

Left figure: Cyclic surfaces (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Middle figure: Cyclic surfaces (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Cyclic surfaces (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

CyclicSurface_j \(\quad\) CyclicSurface_k \(\quad\) CyclicSurface_l

Left figure: Cyclic surfaces (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Middle figure: Cyclic surfaces (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Cyclic surfaces (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

CyclicSurface_m \(\quad\) CyclicSurface_n

Left figure: Cyclic surfaces (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Cyclic surfaces (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

Goursat surfaces#

// See : Krivoshapko (2015), p. 643 // See: https://mathworld.wolfram.com/GoursatsSurface.html // See Gray 1997, p. 314) // See: https://mathcurve.com/surfaces.gb/goursat/goursat.shtml

TestGoursat_a \(\quad\) TestGoursat_b \(\quad\) TestGoursat_c

Left figure: Goursat surfaces (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Middle figure: Goursat surfaces (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Goursat surfaces (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

TestGoursat_d \(\quad\) TestGoursat_e \(\quad\) TestGoursat_f

Left figure: Goursat surfaces (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Middle figure: Goursat surfaces (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Goursat surfaces (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

Cyclides triples#

// See : Krivoshapko (2015), p. 651

CyclidesTriple_a \(\quad\) CyclidesTriple_b \(\quad\) CyclidesTriple_c

Left figure: Cyclides triples (see also Wikipedia [1462], Gray et al. [368], Krivoshapko and Ivanov [421]).

Middle figure: Cyclides triples (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

Right figure: Cyclides triples (see also Wikipedia [1444], Gray et al. [368], Krivoshapko and Ivanov [421]).

Ship Lamé#

// See : Krivoshapko (2015), p. 671

TestShipLame_a \(\quad\) TestShipLame_b