HOME

TheInfoList



OR:

The superformula is a generalization of the
superellipse A superellipse, also known as a Lamé curve after Gabriel Lamé, is a closed curve resembling the ellipse, retaining the geometric features of semi-major axis and semi-minor axis, and symmetry about them, but a different overall shape. In the C ...
and was proposed by Johan Gielis around 2000. Gielis suggested that the formula can be used to describe many complex shapes and curves that are found in nature. Gielis has filed a patent application related to the synthesis of patterns generated by the superformula, which expired effective 2020-05-10. In
polar coordinates In mathematics, the polar coordinate system is a two-dimensional coordinate system in which each point on a plane is determined by a distance from a reference point and an angle from a reference direction. The reference point (analogous to t ...
, with r the radius and \varphi the angle, the superformula is: :r\left(\varphi\right) = \left( \left, \frac \ ^ + \left, \frac \ ^ \right) ^. By choosing different values for the parameters a, b, m, n_1, n_2, and n_3, different shapes can be generated. The formula was obtained by generalizing the superellipse, named and popularized by Piet Hein, a Danish
mathematician A mathematician is someone who uses an extensive knowledge of mathematics in their work, typically to solve mathematical problems. Mathematicians are concerned with numbers, data, quantity, mathematical structure, structure, space, Mathematica ...
.


2D plots

In the following examples the values shown above each figure should be ''m'', ''n''1, ''n''2 and ''n''3. A
GNU Octave GNU Octave is a high-level programming language primarily intended for scientific computing and numerical computation. Octave helps in solving linear and nonlinear problems numerically, and for performing other numerical experiments using a lang ...
program for generating these figures function sf2d(n, a) u = :.001:2 * pi raux = abs(1 / a(1) .* abs(cos(n(1) * u / 4))) .^ n(3) + abs(1 / a(2) .* abs(sin(n(1) * u / 4))) .^ n(4); r = abs(raux) .^ (- 1 / n(2)); x = r .* cos(u); y = r .* sin(u); plot(x, y); end


Extension to higher dimensions

It is possible to extend the formula to 3, 4, or ''n'' dimensions, by means of the
spherical product In mathematics, the superquadrics or super-quadrics (also superquadratics) are a family of geometric shapes defined by formulas that resemble those of ellipsoids and other quadrics, except that the squaring operations are replaced by arbitrary ...
of superformulas. For example, the 3D
parametric surface A parametric surface is a surface in the Euclidean space \R^3 which is defined by a parametric equation with two parameters Parametric representation is a very general way to specify a surface, as well as implicit representation. Surfaces that o ...
is obtained by multiplying two superformulas ''r''1 and ''r''2. The coordinates are defined by the relations: : x = r_1(\theta)\cos\theta \cdot r_2(\phi)\cos\phi, : y = r_1(\theta)\sin\theta \cdot r_2(\phi)\cos\phi, : z = r_2(\phi)\sin\phi, where \phi (
latitude In geography, latitude is a coordinate that specifies the north– south position of a point on the surface of the Earth or another celestial body. Latitude is given as an angle that ranges from –90° at the south pole to 90° at the north po ...
) varies between −''π''/2 and ''π''/2 and ''θ'' (
longitude Longitude (, ) is a geographic coordinate that specifies the east– west position of a point on the surface of the Earth, or another celestial body. It is an angular measurement, usually expressed in degrees and denoted by the Greek let ...
) between −''π'' and ''π''.


3D plots

3D superformula: ''a'' = ''b'' = 1; ''m'', ''n''1, ''n''2 and ''n''3 are shown in the pictures. Image:Sf3d_3257.svg Image:Sf3d_3.5.5.5.svg Image:Sf3d_3301515.svg Image:Sf3d_7284.svg Image:Sf3d_5111.svg Image:sf3d_4.5.54.svg Image:sf3d_8.5.58.svg Image:Sf3d_4121515.svg A
GNU Octave GNU Octave is a high-level programming language primarily intended for scientific computing and numerical computation. Octave helps in solving linear and nonlinear problems numerically, and for performing other numerical experiments using a lang ...
program for generating these figures: function sf3d(n, a) u = pi:.05:pi v = pi / 2:.05:pi / 2 nu = length(u); nv = length(v); for i = 1:nu for j = 1:nv raux1 = abs(1 / a(1) * abs(cos(n(1) .* u(i) / 4))) .^ n(3) + abs(1 / a(2) * abs(sin(n(1) * u(i) / 4))) .^ n(4); r1 = abs(raux1) .^ (- 1 / n(2)); raux2 = abs(1 / a(1) * abs(cos(n(1) * v(j) / 4))) .^ n(3) + abs(1 / a(2) * abs(sin(n(1) * v(j) / 4))) .^ n(4); r2 = abs(raux2) .^ (- 1 / n(2)); x(i, j) = r1 * cos(u(i)) * r2 * cos(v(j)); y(i, j) = r1 * sin(u(i)) * r2 * cos(v(j)); z(i, j) = r2 * sin(v(j)); endfor; endfor; mesh(x, y, z); endfunction;


Generalization

The superformula can be generalized by allowing distinct ''m'' parameters in the two terms of the superformula. By replacing the first parameter m with ''y'' and second parameter m with ''z'':* :r\left(\varphi\right) = \left( \left, \frac \ ^ + \left, \frac \ ^ \right) ^ This allows the creation of rotationally asymmetric and nested structures. In the following examples a, b, and are 1:


References


External links

{{Commons category, Superformula
Some Experiments on Fitting of Gielis Curves by Simulated Annealing and Particle Swarm Methods of Global Optimization

Least Squares Fitting of Chacón-Gielis Curves By the Particle Swarm Method of Optimization

Superformula 2D Plotter & SVG Generator

Interactive example using JSXGraph

SuperShaper: An OpenSource, OpenCL accelerated, interactive 3D SuperShape generator with shader based visualisation (OpenGL3)

Simpel, WebGL based SuperShape implementation
Geometric shapes Curves Surfaces