Superquadrics are a flexible family of 3-dimensional parametric objects, useful
for geometric modeling. By adjusting a relatively few number of parameters, a
large variety of shapes may be obtained. A particularly attractive feature of
superquadrics is their simple mathematical representation.
Superquadrics can be divided into 4 parametric forms: superellipsoids,
one piece superhyperboloids, two piece super hyperboloids, and supertoroids.
In [Barr81], Alan Barr derives a set of
formulae for the representations,
normal vectors, tangent vectors, and inside-outside functions of each of
these forms. We took this mathematical definition of superquadrics
and implemented C++ classes for drawing superquadrics efficiently
in OpenGL. Then, to demonstrate our library we wrote 3 demonstration
programs. Using these programs it is possible to get a very good
idea about how rich a class of 3D objects the superquadric family
defines.
Our project is divided into three main sections: theory, implementation,
and applications. The theory section presents
and discusses Barr's formulae related to superquadrics. The
implementation section discusses
our implementation of superquadrics in C++ and OpenGL. The
applications section describes a number of
uses for superquadrics in academic research.
[Barr81] Barr, A.H. (1981) Superquadrics and Angle-Preserving Transformations. IEEE Computer Graphics and Applications, 1, 11-22. [Ferr93] Ferrie, F.P., Lagarde, J., & Whaite, P. (1993) Darboux Frames, Snakes, and Super-Quadrics: Geometry from the Bottom Up. IEEE Transactions on Pattern Analysis and Machine Intelligence 15(8), 771-783. [Terz91] Terzopoulos, D. (1991) Dynamic 3D Models with Local and Global Deformations: Deformable Superquadrics. IEEE Transactions on Pattern Analysis and Machine Intelligence, 13(7), 703-714.