You are on page 1of 8

On-Line Geometric Modeling Notes

THE DEBOOR-COX CALCULATION

Kenneth I. Joy
Visualization and Graphics Research Group
Department of Computer Science
University of California, Davis

Overview
In 1972, Carl DeBoor and M.G. Cox independently discovered the relationship between the analytic
and geometric definitions of B-splines. Starting with the definition of the normalized B-spline blending
functions, these two researchers were able to develop the geometric definition of the B-spline. It is this
calculation that is discussed in this paper.

Definition of the B-Spline Curve


A B-spline curve P(t), is defined by

n
X
P(t) = Pi Ni,k (t) (1)
i=0

where

the {Pi : i = 0, 1, ..., n} are the control points,

k is the order of the polynomial segments of the B-spline curve. Order k means that the curve is made
up of piecewise polynomial segments of degree k 1,

the Ni,k (t) are the normalized B-spline blending functions. They are described by the order k and
by a non-decreasing sequence of real numbers

{ti : i = 0, ..., n + k} .
normally called the knot sequence. The Ni,k functions are described as follows

1 if t [ti , ti+1 ),
Ni,1 (t) = (2)
0 otherwise.

and if k > 1,
   
t ti ti+k t
Ni,k (t) = Ni,k1 (t) + Ni+1,k1 (t) (3)
ti+k1 ti ti+k ti+1

the parameter t ranges throughout the interval [tk1 , tn+1 ).

We note that if, in equation (3), either of the N terms on the right hand side of the equation are zero, or
the subscripts are out of the range of the summation limits, then the associated fraction is not evaluated and
the term becomes zero. This is to avoid a zero-over-zero evaluation problem.
The order k is independent of the number of control points (n + 1). In the B-Spline curve, unlike
the Bezier Curve, we have the flexibility of using many control points, and restricting the degree of the
polymonial segments.

The DeBoor-Cox Calculation


In the DeBoor-Cox calculation, we substitute the definition of Ni,k (t) given in equation (3), into the
right-hand side of

n
X
P(t) = Pi Ni,k (t)
i=0

and simplify. This will give us the definition of P(t) in terms of Ni,k1 , which is of lower degree. The
general idea is to continue this process until the sum is written with Ni,1 functions, which we can evaluate
easily.
So here we go. If t [tk1 , tn+1 ), then by substituting equation (3) into the equation (1), we have

2
n
X
P(t) = Pi Ni,k (t)
i=0
n     
X t ti ti+k t
= Pi Ni,k1 (t) + Ni+1,k1 (t)
ti+k1 ti ti+k ti+1
i=0

Distributing the sums, we obtain

n   n  
X t ti X ti+k t
= Pi Ni,k1 (t) + Pi Ni+1,k1 (t)
ti+k1 ti ti+k ti+1
i=0 i=0

We now separate out those unique terms of each sum, N0,k1 and Nn+1,k1 , giving

n  
t t0 X t ti
= P0 N0,k1 (t) + Pi Ni,k1 (t)
tk1 t0 ti+k1 ti
i=1
n1
X  ti+k t   
tn+k t
+ Pi Ni+1,k1 (t) + Pn Nn+1,k1 (t)
ti+k ti+1 tn+k tn+1
i=0

Now since the support of a B-spline blending function Ni,k (t) is the interval [ti , ti+k ], we have that
N0,k1 is non-zero only if t [t0 , tk1 ), which is outside the interval [tk1 , tn+1 ) (where P(t) is defined).
Thus, N0,k1 (t) 0. Also Nn+1,k1 is non-zero only if t [tn+1 , tn+k1 ), which is outside the interval

3
[tk1 , tn+1 ). Thus, Nn+1,k1 (t) 0 and we have

n   n1
X  ti+k t 
X t ti
P(t) = Pi Ni,k1 (t) + Pi Ni+1,k1 (t)
ti+k1 ti ti+k ti+1
i=1 i=0

If we change the summation limits, we get

n   n  
X t ti X ti+k1 t
= Pi Ni,k1 (t) + Pi1 Ni,k1 (t)
ti+k1 ti ti+k1 ti
i=1 i=1

Combining the two sums, and rewriting, we obtain

n     
X ti+k1 t t ti
= Pi1 + Pi Ni,k1 (t)
ti+k1 ti ti+k1 ti
i=1

If we denote
   
(1) ti+k1 t t ti
Pi (t) = Pi1 + Pi
ti+k1 ti ti+k1 ti

then the above result may be written

n
(1)
X
P(t) = Pi (t)Ni,k1 (t)
i=1

Now we have written the summation terms of equation (1) in terms of blending functions of lower degree.
(1)
Of course, we have transferred some of the complexity to the Pi s, but we retain a similar form with control
(1)
points Pi s weighted by blending functions, and we can repeat this calculation again.
Once again then, repeating the calculation and manipulating the sums, we obtain

n
(2)
X
P(t) = Pi (t)Ni,k2 (t)
i=2

where
   
(2) ti+k2 t (1) t ti (1)
Pi (t) = Pi1 (t) + Pi (t)
ti+k2 ti ti+k2 ti

4
(Note the appearance of the 2s on the right-hand side of the equation.)
If we continue with this process again, we will manipulate the sum so that the blending functions have
order k 3. Then again with give us k 4, and eventually we will obtain blending functions of order 1. We
are lead to the following result: If we define

(1 j )P(j1) (t) + j P(j1) (t) if j > 0
(j) i i1 i i
Pi (t) = (4)
P if j = 0
i

where

t ti
ij =
ti+kj ti

Then, if t is in the interval [tl , tl+1 ), we have

(k1)
P(t) = Pl (t)

This can be shown by continuing the DeBoor-Cox calculation k 1 times. When complete, we arrive
at the formula
n
(k1)
X
P(t) = Pi (t)Ni,1 (t)
i=k1

(j)
where Pi (t) is given in equation (4). (Note the algebraic simplification that the s provide.) If t
[tl , tl+1 ], then then the only nonzero term of the sum is the lth term, which is one, and the sum must equal
(k1)
Pl (t).
This enables us to define the geometrical definition of the B-spline curve.

Geometric Definition of the B-Spline Curve


Given a set of Control Points

P0 , P1 , ..., Pn

5
and a set of knots

t0 , t1 , ..., tn+k

The B-Spline curve of order k is defined to be

(k1)
P(t) = Pl (t)if t [tl , tl+1 )

where

(1 j )P(j1) (t) + j P(j1) (t) if j > 0
(j) i i1 i i
Pi (t) =
P if j = 0
i

and

t ti
ij =
ti+kj ti

6
It is useful to view the geometric construction as the following pyramid

..
.
Plk+1
(1)
Plk+2
(2)
Plk+2 Plk+3
(1)
Plk+3
Plk+3

Plk+4
(k2)
Pl1
(k1)
Pl
(k2)
Pl

(2)
Pl2 Pl1
(1)
Pl1
(2)
Pl1 Pl
(1)
Pl
Pl
..
.

(j)
Any Pi in this pyramid is calculated as a convex combination of the two P functions immediately to its
left.

Summary
The DeBoor-Cox calculation is a fundamental result in the geometric modeling field. It was used to
exhibit the relation between the analytic definition of the B-Spline curve and the geometric definition of the
curve. The geometric definition of the curve, because of its computational stability has become the primary
technique by which points on these curves are calculated.

7
All contents copyright (c) 1996, 1997, 1998, 1999, 2000
Computer Science Department, University of California, Davis
All rights reserved.

You might also like