i
i
i
i
i
i
i
i
372 15. Curves
A
BC
D
CDAB
BC
AC BDAD
Figure 15.17. The de Casteljau algorithm is used to subdivide a cubic Bézier segment.
The initial points (black diamonds A, B, C, and D) are linearly interpolated to yield gray circles
(AB, BC, CD), which are linearly interpolated to yield white circles (AC, BD), which are linearly
interpolated to give the point on the cubic AD. This process also has subdivided the Bézier
segment with control points A,B,C,D into two Bézier segments with control points A, AB, AC,
AD and AD, BD, CD, D.
divided into smaller pieces, and the process can be repeated. Similar algorithms
can be used for determining the intersection between two curves. Because of the
existence of such algorithms, other curve representations are often converted to
B´ezier form for processing.
15.6.2 B-splines
B-splines provide a method for approximating a set of n points with a curve made
up of polynomials of degree d that gives C
(d−1)
continuity. Unlike the B´ezier
splines of the previous section, B-splines allow curves to be generated for any
desired degree of continuity (almost up to the number of points). Because of
this, B-splines are a preferred way to specify very smooth curves (high degrees
of continuity) in computer graphics. If we want a C
2
or higher curve through an
arbitrary number of points, B-splines are probably the right method.
We can represent a curve using a linear combination of B-spline basis func-
tions. Since these basis functions are themselves splines, we call them basis
splines or B-splines for short. Each B-spline or basis function is made up of a
set of d +1polynomials each of degree d. The methods of B-splines provide
general procedures for defining these functions.
The term B-spline specifically refers to one of the basis functions, not the
function created by the linear combination of a set of B-splines. However, there
is inconsistency in how the term is used in computer graphics. Commonly, a “B-
spline curve” is used to mean a curve represented by the linear combination of
B-splines.
The idea of representing a polynomial as the linear combination of other poly-
nomials has been discussed in Section 15.3.1 and 15.3.5. Representing a spline