Minimal surfaces#
Catenoid#
The XML code for the example below can be found online in the DataXlCalcNet repository or in the corresponding local DataXlCalcNet folder in the files D01a_Catenoid.3D.xml (D01a-c).
The example below uses the following code in C#
var c = 2;
var x = c * Math.Cosh(v / c) * Math.Cos(u);
var y = c * Math.Cosh(v / c) * Math.Sin(u);
var z = v;
Helicoid#
The XML code for the example below can be found online in the DataXlCalcNet repository or in the corresponding local DataXlCalcNet folder in the files D02a_Helicoid.3D.xml (D02a-c).
The example below uses the following code in C#
var x = u * Math.Cos(v);
var y = u * Math.Sin(v);
var z = v;
See also: https://mathworld.wolfram.com/Helicoid.html
See also Wikipedia [1368], MathWorld [1070].
References
Gray, A. Modern Differential Geometry of Curves and Surfaces with Mathematica, 2nd ed. Boca Raton, FL: CRC Press, pp. 449 and 644, 1997.
Bours minimal surface#
The XML code for the example below can be found online in the DataXlCalcNet repository or in the corresponding local DataXlCalcNet folder in the files D03a_Bour.3D.xml (D03a-c).
The example below uses the following code in C#
var sv = Math.Sin(v);
var s2v = Math.Sin(2 * v);
var c32u = Math.Cos(1.5 * v);
var cv = Math.Cos(v);
var c2v = Math.Cos(2 * v);
var u2 = 0.5 * u * u;
var u32 = (4.0 / 3.0) * Math.Sqrt(u * u * u);
var x = u * cv - u2 * c2v;
var y = -u * sv - u2 * s2v;
var z = u32 * c32u;
See also: https://mathworld.wolfram.com/BoursMinimalSurface.html
Catalan minimal surface#
The XML code for the example below can be found online in the DataXlCalcNet repository or in the corresponding local DataXlCalcNet folder in the files D04a_Catalan.3D.xml (D04a-c).
The example below uses the following code in C#
var x = u - Math.Sin(u) * Math.Cosh(v);
var y = 4 * Math.Sin(u / 2) * Math.Sinh(v / 2);
var z = 1 - Math.Cos(u) * Math.Cosh(v);
See also: https://mathworld.wolfram.com/CatalanMinimalSurface.html
See also: https://en.wikipedia.org/wiki/Catalan%27s_minimal_surface
Ennepers first minimal surface#
The XML code for the example below can be found online in the DataXlCalcNet repository or in the corresponding local DataXlCalcNet folder in the files D05a_Enneper.3D.xml (D05a-c).
The example below uses the following code in C#
var x = u - u * u * u / 3 + u * v * v;
var y = u * u - v * v;
var z = v - v * v * v / 3 + v * u * u;
See also: https://mathworld.wolfram.com/EnnepersMinimalSurface.html
See also: https://en.wikipedia.org/wiki/Enneper_surface
Enneper second minimal surface#
The XML code for the example below can be found online in the DataXlCalcNet repository or in the corresponding local DataXlCalcNet folder in the files D06a_Enneper2.3D.xml (D06a-c).
The example below uses the following code in C#
var n = 2;
var a = 1;
Complex i = Complex.ImaginaryOne;
Complex w = new Complex(u, v);
Complex w2nm1 = Complex.Pow(w, 2 * n - 1) / (2 * n - 1);
Complex wn = Complex.Pow(w, n);
var x = a * (w - w2nm1).Real;
var y = a * (-i * (w + w2nm1)).Real;
var z = 2 * a * (wn / n).Real;
See also: https://mathcurve.com/surfaces.gb/enneper/enneper.shtml
Hennebergs minimal surface#
The XML code for the example below can be found online in the DataXlCalcNet repository or in the corresponding local DataXlCalcNet folder in the files D07a_Henneberg.3D.xml (D07a-c).
The example below uses the following code in C#
var sv = Math.Sin(v);
var s3v = Math.Sin(3 * v);
var cv = Math.Cos(v);
var c2v = Math.Cos(2 * v);
var c3v = Math.Cos(3 * v);
var shu = Math.Sinh(u);
var ch2u = Math.Cosh(2 * u);
var sh3u = Math.Sinh(3 * u);
var x = 2 * shu * cv - (2.0 / 3.0) * sh3u * c3v;
var y = 2 * shu * sv + (2.0 / 3.0) * sh3u * s3v;
var z = 2 * ch2u * c2v;
See also: https://mathworld.wolfram.com/HennebergsMinimalSurface.html
See also: https://en.wikipedia.org/wiki/Henneberg_surface
Scherk’s first minimal surface#
The XML code for the example below can be found online in the DataXlCalcNet repository or in the corresponding local DataXlCalcNet folder in the files D08a_Scherk1.3D.xml (D08a-c).
The example below uses the following code in C#
var a = 1 / Math.PI;
var y = u;
var x = a * Math.Log(Math.Cos(v / a) / Math.Cos(u / a));
var z = v;
See also Wikipedia [1368], MathWorld [1070].
See also https://mathcurve.com/surfaces.gb/scherk/scherk.shtml See also Krivoshapko and Ivanov [399], p. 431
Scherk’s second minimal surface#
The XML code for the example below can be found online in the DataXlCalcNet repository or in the corresponding local DataXlCalcNet folder in the files D09a_Scherk2.3D.xml (D09a-c).
The example below uses the following code in C#
var t = v;
var r = u;
var r2 = r * r;
var ct = Math.Cos(t);
var st = Math.Sin(t);
var x = Math.Log((1 + r2 + 2 * r * ct) / (1 + r2 - 2 * r * ct));
var y = Math.Log((1 + r2 - 2 * r * st) / (1 + r2 + 2 * r * st));
var z = 2 * Math.Atan((2 * r2 * Math.Sin(2 * t)) / (r2 * r2 - 1));
y = -y;
See also Wikipedia [1368], MathWorld [1070].
See also https://mathworld.wolfram.com/ScherksMinimalSurfaces.html
See also Krivoshapko and Ivanov [399], p. 442
Richmond minimal surface#
The XML code for the example below can be found online in the DataXlCalcNet repository or in the corresponding local DataXlCalcNet folder in the files D10a_Richmond.3D.xml (D10a-f).
The example below uses the following code in C#
var n = 2.0;
var u2s = Math.Pow(u, 2 * n + 1) / (4 * n + 2);
var x = -Math.Cos(v) / (2 * u) - u2s * Math.Cos(-(2 * n + 1) * v);
var y = -Math.Sin(v) / (2 * u) + u2s * Math.Sin(-(2 * n + 1) * v);
var z = Math.Pow(u, n) * Math.Cos(n * v) / n;
// See also: http://www.3d-meier.de/tut3/Seite250.html // Richmond Surface III // See also: https://en.wikipedia.org/wiki/Richmond_surface
Generalized Ennneper surfaces#
The XML code for the example below can be found online in the DataXlCalcNet repository or in the corresponding local DataXlCalcNet folder in the files D11a_GenEnneper.3D.xml (D11a-f).
The example below uses the following code in C#
var s = 2.0;
var u2s = Math.Pow(u, 2 * s - 1) / (2 * s - 1);
var x = u * Math.Cos(v) - u2s * Math.Cos((2 * s - 1) * v);
var y = -u * Math.Sin(v) - u2s * Math.Sin((2 * s - 1) * v);
var z = 2 * Math.Pow(u, s) * Math.Cos(s * v) / s;
// See also: http://www.3d-meier.de/tut3/Seite247.html // Wavy Enneper Surface






































