CAGD-banner.gif
On-Line Geometric Modeling Notes
THE DEBOOR-COX CALCULATION


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.

pdficonsmall.gif To get a pdf version of these notes look here.


Definition of the B-Spline Curve

A B-spline curve $ {\bf P} (t)$, is defined by

$\displaystyle {\bf P} (t) = \sum_{i= 0}^{n} { {\bf P} _i }{N_{i,k}(t)}$ (1)

where

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 Bézier 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 $ N_{i,k}(t)$ given in equation (3), into the right-hand side of

$\displaystyle {\bf P} (t) = \sum_{i=0}^{n} { {\bf P} _i} {N_{i,k} (t)}
$

and simplify. This will give us the definition of $ {\bf P} (t)$ in terms of $ N_{i,k-1}$, which is of lower degree. The general idea is to continue this process until the sum is written with $ N_{i,1}$ functions, which we can evaluate easily.

So here we go. If $ t \in$ [ $ t_{k-1} , t_{n+1}$), then by substituting equation (3) into the equation (1), we have


Distributing the sums, we obtain


\begin{displaymath}\begin{split}{\bf P} (t) & = \sum_{i=0}^{n} { {\bf P} _i} {N_...
...} - t}{t_{n+k} - t_{n+1}}} \right){N_{n+1,k-1} (t)} \end{split}\end{displaymath}    

Now since the support of a B-spline blending function $ N_{i,k}(t)$ is the interval $ [t_i,t_{i+k}]$, we have that $ N_{0,k-1}$ is non-zero only if $ t \in$ [ $ t_0 , t_{k-1}$), which is outside the interval $ [t_{k-1}, t_{n+1})$ (where $ {\bf P} (t)$ is defined). Thus, $ N_{0,k-1} (t) \equiv 0$. Also $ N_{n+1,k-1}$ is non-zero only if $ t \in$ [ $ t_{n+1} , t_{n+k-1}$), which is outside the interval $ [t_{k-1}, t_{n+1})$. Thus, $ N_{n+1,k-1} (t) \equiv 0$ and we have


If we change the summation limits, we get


\begin{displaymath}\begin{split}{\bf P} (t) & = \sum_{i=1}^{n} { {\bf P} _i} \le...
... - t_i} \right) { {\bf P} _i} \right] N_{i,k-1} (t) \end{split}\end{displaymath}    

If we denote

$\displaystyle {\bf P} _i^{(1)} (t) = \left( \frac{t_{i+k-1} - t}{t_{i+k-1} - t_...
...{ {\bf P} _{i-1}}
+
\left( \frac{t-t_i}{t_{i+k-1} - t_i} \right)
{ {\bf P} _i}
$

then the above result may be written

$\displaystyle {\bf P} (t) = \sum_{i=1}^{n} {\bf P} _i^{(1)}(t) N_{i,k-1} (t)
$

Now we have written the summation terms of equation (1) in terms of blending functions of lower degree. Of course, we have transferred some of the complexity to the $ {\bf P} _i^{(1)}$s, but we retain a similar form with control points $ {\bf P} _i^{(1)}$s weighted by blending functions, and we can repeat this calculation again.

Once again then, repeating the calculation and manipulating the sums, we obtain

$\displaystyle {\bf P} (t)
= \sum_{i=2}^{n}
{\bf P} _i^{(2)}(t)
N_{i,k-2} (t)
$

where

$\displaystyle {\bf P} _i^{(2)}(t) =
\left( \frac{t_{i+k-2} - t}{t_{i+k-2} - t_i...
...1)} (t)}
+
\left( \frac{t-t_i}{t_{i+k-2} - t_i} \right)
{ {\bf P} _i^{(1)}(t)}
$

(Note the appearance of the $ 2$s 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

$\displaystyle {\bf P} _i^{(j)}(t) = \begin{cases}{(1-\tau_i^j )} { {\bf P} _{i-...
... P} _i^{(j-1)}(t)} & \text{if } j>0 \\  {\bf P} _i & \text{if } j=0 \end{cases}$ (4)

where

$\displaystyle \tau_i^j =
\frac{t-t_i}{t_{i+k-j} - t_i}
$

Then, if $ t$ is in the interval $ [t_l , t_{l+1})$, we have

$\displaystyle {\bf P} (t) = {\bf P} _l^{(k-1)}(t)
$

This can be shown by continuing the DeBoor-Cox calculation $ k-1$ times. When complete, we arrive at the formula

$\displaystyle {\bf P} (t)
\: = \sum_{i=k-1}^{n}
{\bf P} _i^{(k-1)}(t)
N_{i,1} (t)
$

where $ {\bf P} _i^{(j)}(t)$ is given in equation (4). (Note the algebraic simplification that the $ \tau$'s provide.) If $ t \in [ t_l , t_{l+1} ]$, then then the only nonzero term of the sum is the $ l$th term, which is one, and the sum must equal $ {\bf P} _l^{(k-1)}(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

$\displaystyle {\bf P} _0 , {\bf P} _1 , ..., {\bf P} _n
$

and a set of knots

$\displaystyle t_0 , t_1 , ..., t_{n+k}
$

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

$\displaystyle {\bf P} (t) = {\bf P} _l^{(k-1)}(t)$   if $\displaystyle t \in [ t_l , t_{l+1} )
$

where

$\displaystyle {\bf P} _i^{(j)}(t) = \begin{cases}
{(1-\tau_i^j )} { {\bf P} _{i...
...P} _i^{(j-1)}(t)}
& \text{if } j>0 \\
{\bf P} _i & \text{if } j=0
\end{cases}$

and

$\displaystyle \tau_i^j =
\frac{t-t_i}{t_{i+k-j} - t_i}
$

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

\begin{displaymath}\begin{array}{ccccccc} \vdots & & & & & & \\  {\bf P} _{l-k+1...
...& \\  {\bf P} _l & & & & & & \\  \vdots & & & & & & \end{array}\end{displaymath}    

Any $ {\bf P} _i^{(j)}$ in this pyramid is calculated as a convex combination of the two $ {\bf P} $ functions immediately to it's 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.


\begin{singlespace}
\noindent
\footnotesize\bfseries All contents copyright (c) ...
...ment, University of California, Davis \\
All rights reserved.
\end{singlespace}


Ken Joy
2000-11-28