Curves and Surfaces for Computer Graphics

By David Salomon. Published by Springer Verlag August 2005. ISBN 0-387-24196-5. LCCN T385.S2434 2005. xvi+461 pages.

Written in late 2003 and most of 2004, the book consists of nine chapters, four appendixes, a bibliography, answers to exercises, and an index.

Dedicated To the memory of Pierre Etienne Bezier (1910-1999, see photos below).

From the Preface.

The chief aim of computer graphics is to display and print realistic-looking images. This task is achieved by computing the outer surface of the object or objects to be displayed, and rendering it by simulating the way it is seen in real life. Most real objects are visible because they reflect light, so the main task of rendering is to simulate light reflection. (Relatively few objects are visible because of light that they generate. A completely transparent object is visible by the light it refracts. Most objects, however, do not generate light and are not transparent. They are seen because they reflect some of the light that falls on them.)

Rendering is therefore an important part of computer graphics, but this book is concerned with the computations of surfaces. In order to render a real object, such as a teapot or a car, its surface has first to be calculated and stored in the computer as a mathematical expression. This expression is a model of the real object, which is why the process of generating the model is known as geometric modeling. The rendering algorithm then scans the surface point by point, computes the normal vector to the surface at every point, and uses the normal to compute the amount and color of light reflected from the point.

The book also deals with curves, because an understanding of curves is a key to understanding surfaces. Most mathematical methods for curves can be extended to surfaces, which is why this book covers various approaches to curve design and shows that many curve methods can be generalized to surfaces.

The most important term in the field of curve and surface design is interpolation. It comes from the Latin inter (between) and polare (to polish) and it means to compute new values that lie between (or that are an average of ) certain given values. A typical algorithm for curves starts with a set of points and employs interpolation to compute a smooth curve that passes through the points. Such points are termed data points and they define an interpolating curve. Some methods

start with both points and vectors and compute a curve that passes through the points and at certain points also moves in the directions of the given vectors.

Another important term in this field is approximation. Certain curve and surface methods start with points and perhaps also vectors and compute a curve or a surface that passes close to the points but not necessarily through them. Such points are known as control points and the curve or the surface defined by them is referred to as an approximating curve or surface. Most chapters of this book describe interpolation or approximation methods.

A listing of all the Mathematica codes in the book is available here.

Table of Contents

Auxiliary Material

1. Readers of this book may find this Mathematica package very useful. "Computer Aided Geometric Design in Mathematica" was written by Bohumir Bastl and published in the 2005 Wolfram Technology Conference in Champaign, IL. This package is also available from The package provides functions for the following CAGD objects:

* splines (quadratic and cubic with the possibility to choose boundary conditions and the type of parametrization)

* Bezier curves and surfaces

* rational Bezier curves and surfaces

* B-spline curves and surfaces

* NURBS curves and surfaces

2. The Mathematica notebooks available here have been developed by Bill Wilburn who graciously made them available to the readers. I hope they will prove valuable.

3. Bill Wilburn has also brought to my attention that the following sites offer Mathematica notebooks on curves and surfaces and may thus prove useful to readers:

Wolfram demonstrations of Bezier curves at

A downlodable NURBS package for Mathematica. This is located at

Naturally, there may be many other useful sites.

4. Figure 7.19 (page 289) was originally drawn by hand and is only an approximation. Pieter Barendrecht has written Matlab code to compute this figure accurately. The code is available here and the accurate figure (in JPEG) is here.


Bezier curves and surfaces are popular and are discussed in detail in the book. The photos of Pierre Bezier (1 September 1910--25 November 1999) shown here are rare.

Last Updated 29 Feb 2012.


Category: Hardware

Similar articles: