Curves and Surfaces are important topics for both CAD and CAM. They are also a major topics for imaging software, virtual reality and a constant focus of research.
Our main interest here, is parametric curves based on control points.
You will find many types of surfaces and many papers or softwares using surface. One of the reasons is that surfaces produce nice results and basic algorithms are cheap and easy to find. However good surface modeling is complex and algorithms extremely costly.
Various type of Curves and Surfaces
Software engineers have been busy for 40 years to invent new type of surfaces to fit some of the requirements:
 |
Continuity, Tangency Continuity, Curvature Continuity |
 |
Fit a set of points |
 |
Predictable changes |
 |
Handling various topology for the border of surfaces (triangles, pentagons, n-sided patches, surfaces with holes) |
 |
Support quadric curves exactly |
Here is a list of the major types
 |
Splines |
 |
B-Splines |
 |
Bezier |
 |
Nurbs |
 |
Coons |
 |
Gregory |
 |
Bertrand |
Introductions & Tutorials
Geometry
this part of the Paul Bourke's web Site
is dedicated to curves and surfaces. There is a good tutorial on Bezier and Spline curves and surfaces and interpolation. classical curves and surfaces and various algorithms are also found on these pages.
NURBS Curves: A Guide for the Uninitiated
A good introduction to Nurbs curves from an Apple site.
What's a Bézier Curve
A basic tutorial on Bezier curves.
Libraries and Source code
C++ NURBS library
of Philippe Lavoie. This library is delivered with binary and source code under the GNU licensing. An introduction about the mathematics of NURBS is also found on this site.
MAGIC
by Dave Eberly is a free C++ source code library. It contains many C++ implementation for non trivial algorithms in the computer graphic area. In particular this library is a great resource for curves and surfaces. Last but not least all the topics are associated with a detailed documentation.
IntegrityWare
and GeomWare
, Inc
Have various commercial Nurbs libraries offering high level algorithms like surface surface intersection.
CADCAM Techniques
Software capability of representing the sense of material with its familiar operations like drilling a hole or adding a slot. Solid modelers will be able to produce automatically cross sections and display with hidden lines removed