next up previous


Here's the correct de Boor recursion formula for the B-spline basis functions.


\begin{displaymath}N_i^{k}(u) = \frac{u-u_{i-1}}{u_{i+k-1}-u_{i-1}}N_{i}^{k-1}(u)+
\frac{u_{i+k}-u}{u_{i+k}-u_{i}}N_{i+1}^{k-1}(u).\end{displaymath}

With

\begin{displaymath}N_i^{0}(u) = \left\{\begin{array}{ll} 1 & \mbox{if $u_{i-1} \leq u < u_i$} \\
0 & \mbox{otherwise} \end{array}\right.\end{displaymath}

To see how it is used consider the knot vector

\begin{displaymath}\langle 0,\,0,\,1,\,2,\,2\rangle = \langle u_0,\,u_1,\,u_2,\,u_3,\, u_4\rangle\end{displaymath}

.

The first order (zeroth degree) basis for this knot sequence is:

\begin{displaymath}N_1^{0}(u) = \left\{\begin{array}{ll} 1 & \mbox{if $0 \leq u < 0$} \\
0 & \mbox{otherwise} \end{array}\right. \equiv 0.\end{displaymath}


\begin{displaymath}N_2^{0}(u) = \left\{\begin{array}{ll} 1 & \mbox{if $0 \leq u < 1$} \\
0 & \mbox{otherwise} \end{array}\right.\end{displaymath}


\begin{displaymath}N_3^{0}(u) = \left\{\begin{array}{ll} 1 & \mbox{if $1 \leq u < 2$} \\
0 & \mbox{otherwise} \end{array}\right.\end{displaymath}


\begin{displaymath}N_4^{0}(u) = \left\{\begin{array}{ll} 1 & \mbox{if $2 \leq u < 2$} \\
0 & \mbox{otherwise} \end{array}\right.\equiv 0\end{displaymath}

Next we blend these (two at a time) to form 2nd order (1st degree) basis functions.

\begin{eqnarray*}N_1^{1}(u) & = & \frac{u-u_{1-1}}{u_{1+1-1}-u_{1-1}}N_{1}^{1-1}...
...0}N_{2}^{0}(u) \\
& = & (1-u)\, \mbox {for $0\leq u < 1$ } \\
\end{eqnarray*}


Note that $\frac{0}{0}$ is defined to be 0.


\begin{eqnarray*}N_2^{1}(u) & = & \frac{u-u_{2-1}}{u_{2+1-1}-u_{2-1}}N_{2}^{1-1}...
...0\leq 0 u < 1$ } \\
& = & 2-u\, \mbox {for $1\leq u < 2$ } \\
\end{eqnarray*}



\begin{eqnarray*}N_3^{1}(u) & = & \frac{u-u_{3-1}}{u_{3+1-1}-u_{3-1}}N_{3}^{1-1}...
...2-2}N_{4}^{0}(u) \\
& = & u-1\, \mbox {for $1\leq u < 2$ } \\
\end{eqnarray*}


Next we can blend these two at a time:


\begin{eqnarray*}N_1^{2}(u) & = & \frac{u-u_{1-1}}{u_{1+2-1}-u_{1-1}}N_{1}^{2-1}...
... 1$ } \\
& = & \frac{2-u}{2}u\, \mbox {for $1\leq u < 2$ } \\
\end{eqnarray*}



\begin{eqnarray*}N_2^{2}(u) & = & \frac{u-u_{2-1}}{u_{2+2-1}-u_{2-1}}N_{2}^{2-1}...
...c{u}{2}(2-u)+\frac{2-u}{2}(u-1)\, \mbox {for $1\leq u < 2$ } \\
\end{eqnarray*}


Finally we can blend these two together:


\begin{eqnarray*}N_1^{3}(u) & = & \frac{u-u_{1-1}}{u_{1+3-1}-u_{1-1}}N_{1}^{3-1}...
...}{2}(2-u)+\frac{2-u}{2}(u-1)]
\, \mbox {for $1\leq u < 2$ } \\
\end{eqnarray*}




William Shoaff
1999-03-03