On-Line Geometric Modeling Notes


The normalized B-spline blending functions are defined recursively by

$\displaystyle N_{i,1} (t) = \begin{cases}1 & \text{if }u \in [ t_i , t_{i+1} ) \\  0 & \text{otherwise} \end{cases}$ (1)

and if $ k>1$,

$\displaystyle N_{i,k} (t) = \left( \frac{t-t_i}{t_{i+k-1} - t_i} \right) N_{i,k-1} (t) + \left( \frac{t_{i+k} - t}{t_{i+k} - t_{i+1}} \right) N_{i+1,k-1} (t)$ (2)

where $ \left\{ t_0, t_1, ..., t_{n+k} \right\}$ is a non-decreasing sequence of knots, and $ k$ is the order of the curve.

These functions are difficult to calculate directly for a general knot sequence. However, if the knot sequence is uniform, it is quite straightforward to calculate these functions - and they have some suprising properties.

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

Calculating the Blending Functions using a Uniform Knot Sequence

Assume that $ \left\{ t_0, t_1, t_2, ..., t_n \right\}$ is a uniform knot sequence, i.e., $ \left\{ 0, 1, 2, ..., n \right\}$. This will simplify the calculation of the blending functions, as $ t_i = i$.

Blending Functions for k = 1

if $ k=1$, then by using equation (1), we can write the normalized blending functions as

$\displaystyle N_{i,1} (t) = \begin{cases}1 & \text{if }u \in [ i , {i+1} ) \\  0 & \text{otherwise} \end{cases}$ (3)

These are shown together in the following figure, where we have plotted $ N_{0,1}$, $ N_{1,1}$, $ N_{2,1}$, and $ N_{3,1}$ respectively, over five of the knots. Note the white circle at the end of the line where the functions value is $ 1$. This represents the affect of the ``open-closed'' interval found in equation (1).

\includegraphics {figures/blending-1}

These functions have support (the region where the curve is nonzero) in an interval, with $ N_{i,1}$ having support on $ [i,i+1)$. They are also clearly shifted versions of each other - e.g., $ N_{i+1,1}$ is just $ N_{i,1}$ shifted one unit to the right. In fact, we can write $ N_{i,1}(t) = N_{0,1}(t-i)$

Blending Functions for k = 2

If $ k=2$ then $ N_{0,2}$ can be written as a weighted sum of $ N_{0,1}$ and $ N_{1,1}$ by equation (2). This gives

\begin{displaymath}\begin{aligned}N_{0,2} (t) & = \frac{t-t_0}{t_{1} - t_0} N_{0...
...1 \leq t < 2 \\  0 & \text{otherwise} \end{cases} \end{aligned}\end{displaymath}

This curve is shown in the following figure. The curve is piecewise linear, with support in the interval $ [0,2]$.

\includegraphics {figures/blending-5}

These functions are commonly referred to as ``hat'' functions and are used as blending functions in many linear interpolation problems.

Similarly, we can calculate $ N_{1,2}$ to be

\begin{displaymath}\begin{aligned}N_{1,2} (t) & = \frac{t-t_1}{t_{2} - t_1} N_{1...
...2 \leq t < 3 \\  0 & \text{otherwise} \end{cases} \end{aligned}\end{displaymath}

This curve is shown in the following figure, and it is easily seen to be a shifted version of $ N_{0,2}$.

\includegraphics {figures/blending-6}

Finally, we have that

\begin{displaymath}\begin{aligned}N_{1,2} (t) & = \begin{cases}t-2 & \text{if } ...
...3 \leq t < 4 \\  0 & \text{otherwise} \end{cases} \end{aligned}\end{displaymath}

which is shown in the following illustration.

\includegraphics {figures/blending-6}

These nonzero portion of these curves each cover the intervals spanned by three knots - e.g., $ N_{1,2}$ spans the interval $ [ 1, 3 ]$. The curves are piecewise linear, made up of two linear segments joined continuously.

Sinve the curves are shifted versions of each other, we can write

$\displaystyle N_{i,2}(t) = N_{0,2}(t-i)

Blending Functions for k = 3

For the case $ k=3$, we again use equation (2) to obtain

\begin{displaymath}\begin{aligned}N_{0,3} (t) & = \frac{t-t_0}{t_{2} - t_0} N_{0...
...2 \leq t < 3 \\  0 & \text{otherwise} \end{cases} \end{aligned}\end{displaymath}

and by nearly identical calculations,

\begin{displaymath}\begin{aligned}N_{1,3} (t) & = \frac{t-t_1}{t_{3} - t_1} N_{1...
...eq t < 4 \\  0 & \text{otherwise} \end{cases} \\  \end{aligned}\end{displaymath}

These curves are shown in the following figure. They are clearly piecewise quadratic curves, each made up of three parabolic segments that are joined at the knot values (we have placed tick marks on the curves to show where they join).

\includegraphics {figures/blending-8}

The nonzero portion of these two curves each span the interval between four consecutive knots - e.g., the nonzero portion of $ N_{1,3}$ spans the interval $ [ 1,4 ]$. Again, $ N_{1,3}$ can be seen visually to be a shifted version of $ N_{0,3}$. (This fact can also be seen analytically by substituting $ t+1$ for $ t$ in the equation for $ N_{1,3}$.) We can write

$\displaystyle N_{i,3}(t) = N_{0,3}(t-i)

Blending Functions of Higher Orders

It is not too difficult to conclude that the $ N_{i,4}$ blending functions will be piecewise cubic functions. The support of $ N_{i,4}$ will be the interval $ [i,i+4]$ and each of the blending functions will be shifted versions of each other, allowing us to write

$\displaystyle N_{i,4}(t) = N_{0,4}(t-i)

In general, the uniform blending functions $ N_{i,k}$ will be piecewise $ k-1$st degree functions having support in the interval $ [i,i+k)$. They will be shifted versions of each other and each can be written in terms of a ``basic'' function

$\displaystyle N_{i,k}(t) = N_{0,k}(t-i)


In the case of the uniform knot sequence, the blending functions are fairly easy to calculate, are shifted versions of each other, and have support over a simple interval determined by the knots. These characteristics are unique to the uniform blending functions.

For other special characteristics see the notes that describe writing the uniform blending functions as a convolution, and the notes that describe the two-scale relation for uniform B-splines

\footnotesize\bfseries All contents copyright (c) ...
...ment, University of California, Davis \\
All rights reserved.

Ken Joy