25-06-2012, 12:52 PM
B-Spline Curves
B-Spline Curves.pdf (Size: 112.45 KB / Downloads: 160)
We have seen how Bezier curves offer well-behaved control within a convex hull for any degree
(number of control points) we choose. And from a computational point of view, it is a relatively
simple matter to extend a Bezier curve by adding more control points because the computation of
the new blending functions is straightforward.
However, we cannot easily control the curve locally. That is, any change to an individual control
point will cause changes in the curve along its full length. In addition, we cannot create a local
cusp in the curve, that is, we cannot create a sharp corner unless we create it at the beginning or
end of a curve where it joins another curve. Finally, it is not possible to keep the degree of the
Bezier curve fixed while adding additional points; any additional points will automatically
increase the degree of the curve.
Mathematical Definition
There are several key differences in the formulation of a b-spline curve. In the first place, since
the curve can be defined over an arbitrarily large number of points without increasing the degree,
we will replace the parametric variable, u, with a new variable, t, where t can range from
min max t ≤ t ≤ t . We will associate values of 0 1 2 , , , m t = t t t …t with the m+1 control points that will
define the curve. The ti are called knots and the knots [ ] i t are called a knot vector or knot
sequence. The only other restriction on t is that the values of ti must be monotonically
increasing. It simplifies the development to assume t takes on unit spacing, 0,1,2, etc and this is
referred to as uniform knot spacing. The b-spline is defined for [ ] 0 , m t ∈ t t as.
Graphical Interpretation
Rather than the above mathematical definition, the b-spline curve is perhaps most clearly defined
by describing its development first for a low order form and then extending this to higher order.
For simplicity, we will begin with the description of a second order form that involves first
degree (linear) basis functions. As a result, this order curve be a piecewise linear curve (e.g., a
polyline). Consider the general problem of a piecewise linear interpolation of a set of points,
n p" #p"
0 as shown below (note that the values of t do not need to increase uniformly).
Higher Order Basis Functions
The above formulation will describe any piecewise linear curve (e.g., a polyline) but it will not
define a smoother curve. However, we can readily generalize the process of defining the curve
in terms of a basis function. In this case we must create a basis function that is higher than
second order, e.g., third or fourth order or higher. For example, if we can create a third order
(second degree or quadratic) basis function, then we can represent a curve as a superposition of
quadratic basis functions so the resulting curve will be everywhere quadratic. Perhaps more
revealing, we could also reduce the order of the basis function developed above from second to
first order. The resulting first order or zero degree basis functions will have only a single
parameter which is a constant. These points are much better illustrated in the following figure
which shows the range of polynomial basis functions starting with first order or zero degree.