0% found this document useful (0 votes)
110 views24 pages

Bspline Curves

B-spline curves are composed of multiple curve segments connected together to form a continuous curve. They provide higher continuity between segments than simple Bézier curves. B-splines use a knot vector to define the parameter intervals of the constituent Bézier curves. The polar form labeling method can be used to extract the control points of each Bézier curve segment from the B-spline's control points in a straightforward manner using affine combinations and symmetry properties. This allows the curves to join with Cn-1 continuity regardless of control point placement.

Uploaded by

eliekawerk
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
110 views24 pages

Bspline Curves

B-spline curves are composed of multiple curve segments connected together to form a continuous curve. They provide higher continuity between segments than simple Bézier curves. B-splines use a knot vector to define the parameter intervals of the constituent Bézier curves. The polar form labeling method can be used to extract the control points of each Bézier curve segment from the B-spline's control points in a straightforward manner using affine combinations and symmetry properties. This allows the curves to join with Cn-1 continuity regardless of control point placement.

Uploaded by

eliekawerk
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

Chapter 6

B-Spline Curves
Most shapes are too complicated to dene using a single Bezier curve. A spline curve is a sequence
of curve segments that are connected together to form a single continuous curve. For example, a
piecewise collection of Bezier curves, connected end to end, can be called a spline curve. Over-
hauser curves are another example of splines. The word spline is sometimes used as a verb, as in
Spline together some cubic Bezier curves. In approximation theory, spline is dened as a piecewise
polynomial of degree n whose segments are C
n1
.
The word spline comes from the ship building industry, where it originally referred to a thin
strip of wood which draftsmen would use like a exible French curve. Metal weights (called ducks)
were placed on the drawing surface and the spline was threaded between the ducks as in Figure 6.1.
We know from structural mechanics that the bending moment M is an innitely continuous function
Figure 6.1: Spline and ducks.
along the spline except at a duck, where M is generally only C
0
continuous. Since the curvature of
the spline is proportional to M ( = M/EI), the spline is everywhere curvature continuous.
Curvature continuity is an important requirement for the ship building industry, as well as for
many other applications. For example, railroad tracks are always curvature continuous, or else a
moving train would experience severe jolts. Car bodies are G
2
smooth, or else the reection of
straight lines would appear to be G
0
.
While C
1
continuity is straightforward to attain using Bezier curves (for example, popular design
software such as Adobe Illustrator use Bezier curves and automatically impose tangent continuity
as you sketch), C
2
and higher continuity is cumbersome. This is where B-spline curves come in.
B-spline curves can be thought of as a method for dening a sequence of degree n Bezier curves that
join automatically with C
n1
continuity, regardless of where the control points are placed.
Whereas an open string of m Bezier curves of degree n involve nm + 1 distinct control points
(shared control points counted only once), that same string of Bezier curves can be expressed using
55
56 Polar Form
only m+n B-spline control points (assuming all neighboring curves are C
n1
). The most important
operation you need to understand to have a working knowledge of B-splines is how to extract the
contituent Bezier curves. The traditional approach to teaching about B-Splines centered on basis
functions and recurrence relations. Experience has shown that polar form (Section 6.1) and knot
intervals (Section 6.13) provide students with such a working knowledge more quickly than recurrence
relations.
6.1 Polar Form
Polar form, introduced by Dr. Lyle Ramshaw [Ram87, Ram89a, Ram89b], can be thought of as
simply an alternative method of labeling the control points of a Bezier or B-Spline curve. These
labels are referred to as polar values. These notes summarize the properties and applications of
polar form, without delving into derivations. The interested student can study Ramshaws papers.
All of the important algorithms for Bezier and B-spline curves can be derived from the following
four rules for polar values.
1. For a degree n Bezier curve P
[a,b]
(t), the control points are relabeled P
i
= P(u
1
, u
2
, . . . u
n
) where
u
j
= a if j n i and otherwise u
j
= b. For a degree two Bezier curve P
[a,b]
(t),
P
0
= P(a, a); P
1
= P(a, b); P
2
= P(b, b).
For a degree three Bezier curve P
[a,b]
(t),
P
0
= P(a, a, a); P
1
= P(a, a, b);
P
2
= P(a, b, b); P
3
= P(b, b, b),
and so forth.
P(0,0,0)
P(0,0,2)
P(0,2,2)
P(2,2,2)
P(2,2,3)
P(2,3,3)
P(3,3,3)
(a) Bezier curves with polar labels.
P(1,2,3)
P(2,3,4)
P(3,4,5)
P(4,5,6)
P(5,6,7)
P(6,7,8)
t=3
t=4
t=5
t=6
Knot Vector = [1,2,3,4,5,6,7,8]
(b) B-Spline Curve with Polar Labels
Figure 6.2: Polar Labels.
Figure 6.2.a shows two cubic Bezier curves labeled using polar values. The rst curve is dened
over the parameter interval [0, 2] and the second curve is dened over the parameter interval [2, 3].
Note that P(t, t, . . . , t) is the point on a Bezier curve corresponding to parameter value t.
2. For a degree n B-spline with a knot vector (see Section 6.2) of
[t
1
, t
2
, t
3
, t
4
, . . .],
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
Polar Form 57
the arguments of the polar values consist of groups of n adjacent knots from the knot vector, with
the i
th
polar value being P(t
i
, . . . , t
i+n1
), as in Figure 6.2.b.
3. A polar value is symmetric in its arguments. This means that the order of the arguments can be
changed without changing the polar value. For example,
P(1, 0, 0, 2) = P(0, 1, 0, 2) = P(0, 0, 1, 2) = P(2, 1, 0, 0), etc.
4. Given P(u
1
, u
2
, . . . , u
n1
, a) and P(u
1
, u
2
, . . . , u
n1
, b) we can compute P(u
1
, u
2
, . . . , u
n1
, c)
where c is any value:
P(u
1
, u
2
, . . . , u
n1
, c) =
(b c)P(u
1
, u
2
, . . . , u
n1
, a) + (c a)P(u
1
, u
2
, . . . , u
n1
, b)
b a
P(u
1
, u
2
, . . . , u
n1
, c) is said to be an ane combination of P(u
1
, u
2
, . . . , u
n1
, a) and P(u
1
, u
2
,
. . . , u
n1
, b). For example,
P(0, t, 1) = (1 t) P(0, 0, 1) + t P(0, 1, 1),
P(0, t) =
(4 t) P(0, 2) + (t 2) P(0, 4)
2
,
P(1, 2, 3, t) =
(t
2
t) P(2, 1, 3, t
1
) + (t t
1
) P(3, 2, 1, t
2
)
(t
2
t
1
)
.
What this means geometrically is that if you vary one parameter of a polar value while holding all
others constant, the polar value will sweep out a line at a constant velocity, as in Figure 6.3.
P(0,c,d)
P(1,c,d)
P(2,c,d)
P(3,c,d)
P(4,c,d)
P(5,c,d)
P(6,c,d)
Figure 6.3: Ane map property of polar values.
6.1.1 Subdivision of Bezier Curves
To illustrate how polar values work, we now show how to derive the de Casteljau algorithm using
only the rst three rules for polar values.
Given a cubic Bezier curve P
[0,1]
(t), we wish to split it into P
[0,t]
and P
[t,1]
. The control points
of the original curve are labeled
P(0, 0, 0), P(0, 0, 1), P(0, 1, 1), P(1, 1, 1).
The subdivision problem amounts to nding polar values
P(0, 0, 0), P(0, 0, t), P(0, t, t), P(t, t, t),
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
58 Knot Vectors
and
P(t, t, t), P(t, t, 1), P(t, 1, 1), P(1, 1, 1).
These new control points can be derived by applying the symmetry and ane map rules for polar
values. Refering to Figure 6.4, we can compute
STEP 1.
P(0, 0, t) = (1 t) P(0, 0, 0) + (t 0) P(0, 0, 1);
P(0, 1, t) = (1 t) P(0, 0, 1) + (t 0) P(0, 1, 1);
P(t, 1, 1) = (1 t) P(0, 1, 1) + (t 0) P(1, 1, 1).
STEP 2.
P(0, t, t) = (1 t) P(0, 0, t) + (t 0) P(0, t, 1);
P(1, t, t) = (1 t) P(0, t, 1) + (t 0) P(t, 1, 1);
STEP 3.
P(t, t, t) = (1 t) P(0, t, t) + (t 0) P(t, t, 1);
t = .6
P(0) = P(0,0,0)
P(0,0,1)
P(0,1,1)
P(1) = P(1,1,1)
P(0,0,t)
P(0,t,1)
P(t,1,1)
P(0,t,t) P(t,t,1)
P(t) = P(t,t,t)
Figure 6.4: Subdividing a cubic Bezier curve.
6.2 Knot Vectors
A knot vector is a list of parameter values, or knots, that specify the parameter intervals for the
individual Bezier curves that make up a B-spline. For example, if a cubic B-spline is comprised of
four Beziercurves with parameter intervals [1, 2], [2, 4], [4, 5], and [5, 8], the knot vector would be
[t
0
, t
1
, 1, 2, 4, 5, 8, t
7
, t
8
].
Notice that there are two (one less than the degree) extra knots prepended and appended to the knot
vector. These knots control the end conditions of the B-spline curve, as discussed in Section 6.6.
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
Extracting Bezier Curves from B-splines 59
For historical reasons, knot vectors are traditionally described as requiring n end-condition knots,
and in the real world you will always nd a (meaningless) additional knot at the beginning and end
of a knot vector. For example, the knot vector in Figure 6.2.b would be [t
0
, 1, 2, 3, 4, 5, 6, 7, 8, t
9
],
where the values of t
0
and t
9
have absolutely no eect on the curve. Therefore, we ignore these
dummy knot values in our discussion, but be aware that they appear in B-spline literature and
software.
Obviously, a knot vector must be non-decreasing sequence of real numbers. If any knot value is
repeated, it is referred to as a multiple knot. More on that in Section 6.4. A B-spline curve whose
knot vector is evenly spaced is known as a uniform B-spline. If the knot vector is not evenly spaced,
the curve is called a non-uniform B-spline.
6.3 Extracting Bezier Curves from B-splines
We are now ready to discuss the central practical issue for B-splines, namely, how does one nd
the control points for the Bezier curves that make up a B-spline. This procedure is often called the
Bohm algorithm after Professor Wolfgang Bohm [B

81].
Consider the B-spline in Figure 6.2.b consisting of Bezier curves over domains [3, 4], [4, 5], and
[5, 6]. The control points of those three Bezier curves have polar values
P(3, 3, 3), P(3, 3, 4), P(3, 4, 4), P(4, 4, 4)
P(4, 4, 4), P(4, 4, 5), P(4, 5, 5), P(5, 5, 5)
P(5, 5, 5), P(5, 5, 6), P(5, 6, 6), P(6, 6, 6)
respectivly. Our puzzle is to apply the ane and symmetry properties to nd those polar values
given the B-spline polar values.
For the Bezier curve over [3, 4], we rst nd that P(3, 3, 4) is 1/3 of the way from P(2, 3, 4) to
P(5, 3, 4) = P(3, 4, 5). Likewise, P(3, 4, 4) is 2/3 of the way from P(3, 4, 2) = P(2, 3, 4) to P(3, 4, 5).
See Figure 6.5.a.
P(3,3,4)
P(5,3,4)
P(2,3,4)
P(3,4,4)
P(1,2,3)
P(4,5,6)
P(5,6,7)
P(6,7,8)
P(3,3,3)
P(4,4,4)
t=5
t=6
Knot Vector = [1,2,3,4,5,6,7,8]
(a) First Step.
P(3,4,5)
P(4,4,5)
P(6,4,5)
P(1,2,3)
P(3,2,3)
P(4,2,3)
P(5,6,7)
P(6,7,8)
P(3,3,4)
P(3,4,4)
P(3,3,3)
P(4,4,4)
t=5
t=6
Knot Vector = [1,2,3,4,5,6,7,8]
(b) Second Step.
Figure 6.5: Bohm algorithm.
Before we can locate P(3, 3, 3) and P(4, 4, 4), we must nd the auxilliary points P(3, 2, 3) (2/3
of the way from P(1, 2, 3) to P(4, 2, 3)) and P(4, 4, 5) (2/3 of the way from P(3, 4, 5) to P(6, 4, 5))
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
60 Multiple knots
as shown in Figure 6.5.b. Finally, P(3, 3, 3) is seen to be half way between P(3, 2, 3) and P(3, 3, 4),
and P(4, 4, 4) is seen to be half way between P(3, 4, 4) and P(4, 4, 5).
Note that the four Bezier control points were derived from exactly four B-spline control points;
P(5, 6, 7) and P(6, 7, 8) were not involved. This means that P(5, 6, 7) and P(6, 7, 8) can be moved
without aecting the Bezier curve over [3, 4]. In general, the Bezier curve over [t
i
, t
i+1
] is only
inuenced by B-spline control points that have t
i
or t
i+1
as one of the polar value parameters. For
this reason, B-splines are said to possess the property of local control, since any given control point
can inuence at most n curve segments.
6.4 Multiple knots
If a knot vector contains two identical non-end-condition knots t
i
= t
i+1
, the B-spline can be
thought of as containing a zero-length Bezier curve over [t
i
, t
i+1
]. Figure 6.9 shows what happens
when two knots are moved together. The Bezier curve over the degenerate interval [5, 5] has polar
values P(5, 5, 5), P(5, 5, 5), P(5, 5, 5), P(5, 5, 5), which is merely the single point P(5, 5, 5). It can be
P(1,2,3)
P(2,3,4.5) P(3,4.5,5)
P(4.5,5,6)
P(5,6,7)
P(6,7,8)
t=3
t=4.5
t=5
t=6
Knot Vector = [1,2,3,4.5,5,6,7,8]
P(1,2,3)
P(2,3,4.9) P(3,4.9,5)
P(4.9,5,6)
P(5,6,7)
P(6,7,8)
t=3
t=4.9
t=5
t=6
Knot Vector = [1,2,3,4.9,5,6,7,8]
P(1,2,3)
P(2,3,5) P(3,5,5)
P(5,5,6)
P(5,6,7)
P(6,7,8)
t=3
t=5
t=6
Knot Vector = [1,2,3,5,5,6,7,8]
Figure 6.6: Double knot.
shown that a multiple knot diminishes the continuity between adjacent Bezier curves. The continuity
across a knot of multiplicity k is generally n k.
6.5 Periodic B-splines
A periodic B-spline is a B-spline which closes on itself. This requires that the rst n control points
are identical to the last n, and the rst n parameter intervals in the knot vector are identical to the
last n intervals as in Figure 6.7.a.
6.6 Bezier end conditions
We earlier noted that a knot vector always has n 1 extra knots at the beginning and end which
do not signify Bezier parameter limits (except in the periodic case), but which inuence the shape
of the curve at its ends. In the case of an open (i.e., non-periodic) B-spline, one usually chooses
an n-fold knot at each end. This imposes a Bezier behavior on the end of the B-spline, in that the
curve interpolates the end control points and is tangent to the control polygon at its endpoints. One
can verify this by noting that to convert such a B-spline into Bezier curves, the two control points
at each end are already in Bezier form. This is illustrated in Figure 6.7.b.
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
Knot insertion 61
P(1,3,4)
P(3,4,5)
P(4,5,7)
P(5,7,8)
P(7,8,10)
P(8,10,11)
P(10,11,12)
P(11,12,14)
t=4,11
t=5,12
t=7
t=8
t=10
Knot Vector = [1 3 4 5 7 8 10 11 12 14]
(a) Periodic B-Spline.
P(0,0,0)
P(0,0,1)
P(0,1,3)
P(1,3,4)
P(3,4,4)
P(4,4,4)
t=0
t=1
t=3
t=4
Knot Vector = [0,0,0,1,3,4,4,4]
(b) Bezier End Conditions.
Figure 6.7: Special B-Spline Curves.
6.7 Knot insertion
A standard design tool for B-splines is knot insertion. In the knot insertion process, a knot is added
to the knot vector of a given B-spline. This results in an additional control point and a modication
of a few existing control points. The end result is a curve dened by a larger number of control
points, but which denes exactly the same curve as before knot insertion.
Knot insertion has several applications. One is the de Boor algorithm for evaluating a B-spline
(discussed in the next section). Another application is to provide a designer with the ability to add
local details to a B-spline. Knot insertion provides more local control by isolating a region to be
modied from the rest of the curve, which thereby becomes immune from the local modication.
Consider adding a knot at t = 2 for the B-spline in Figure 6.7.b. As shown in Figure 6.8.a, this in-
volves replacing P(0, 1, 3) and P(1, 3, 4) with P(0, 1, 2), P(1, 2, 3), and P(2, 3, 4). Figure 6.8.b shows
the new set of control points, which are easily obtained using the ane and symmetry properties of
polar values.
Initial After Knot Insertion
Knot Vector: [(0,0,0,1,3,4,4,4)] [(0,0,0,1,2,3,4,4,4)]
Control Points: P(0,0,0)
P(0,0,1)
P(0,1,3)
P(1,3,4)
P(3,4,4)
P(4,4,4)
P(0,0,0)
P(0,0,1)
P(0,1,2)
P(1,2,3)
P(2,3,4)
P(3,4,4)
P(4,4,4)
(a) Knots and Polar Labels.
P(0,1,3)
P(1,3,4)
P(0,0,0)
P(0,0,1)
P(0,1,2)
P(1,2,3)
P(2,3,4)
P(3,4,4)
P(4,4,4)
t=0
t=1
t=2
t=3
t=4
Old Knot Vector = [0,0,0,1,3,4,4,4]
New Knot Vector = [0,0,0,1,2,3,4,4,4]
(b) Control Points.
Figure 6.8: Knot Insertion.
Note that the continuity at t = 2 is C

.
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
62 The de Boor algorithm
Example
This degree four polynomial Bezier curve begins at t = 1 and ends at t = 5, and is therefore also
a B-spline with knot vector [11115555]. Insert a knot at t = 3. State the control point coordinates
and knot vector after this knot insertion is performed.
P
0
= (1,1)
P
1
= (1,4)
P
2
= (4,7)
P
3
= (7,4)
P
4
= (7,1)
Figure 6.9: B-spline with knot vector [11115555].
Solution
The control points whose polar labels are f(1, 1, 1, 5) = (1, 4), f(1, 1, 5, 5) = (4, 7) and f(1, 5, 5, 5) =
(7, 4) will be replaced with polar labels f(1, 1, 1, 3) = (1, 2.5), f(1, 1, 3, 5) = (2.5, 5.5), f(1, 3, 5, 5) =
(5.5, 5.5), and f(3, 5, 5, 5) = (7, 2.5).
6.8 The de Boor algorithm
The de Boor algorithm provides a method for evaluating a B-spline curve. That is, given a parameter
value, nd the point on the B-spline corresponding to that parameter value.
Any point on a B-spline P(t) has a polar value P(t, t, . . . , t), and we can nd it by inserting knot
t n times. This is the de Boor algorithm. Using polar forms, the algorithm is easy to gure out.
The de Boor algorithm is illustrated in Figure 6.10.
6.9 Explicit B-splines
Section 2.14 discusses explicit Bezier curves, or curves for which x(t) = t. We can likewise locate
B-spline control points in such a way that x(t) = t. The x coordinates for an explicit B-spline are
known as Greville abscissae. For a degree n B-spline with m knots in the knot vector, the Greville
abscissae are given by
x
i
=
1
n
(t
i
+ t
i+1
+ . . . + t
i+n1
); i = 0 . . . mn. (6.1)
6.10 B-spline hodographs
The rst derivative (or hodograph) of a B-spline is obtained in a manner similar to that for Bezier
curves. The hodograph has the same knot vector as the given B-spline except that the rst and last
knots are discarded. The control points are given by the equation
H
i
= n
(P
i+1
P
i
)
t
i+n
t
i
(6.2)
where n is the degree.
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
Symmetric polynomials 63
P(0,1,3)
P(1,2,3)
P(1,3,4)
P(0,0,0)
P(0,0,1)
P(0,1,2)
P(1,2,2)
P(2,2,2)
P(2,2,3)
P(2,3,4)
P(3,4,4)
P(4,4,4)
t=0
t=4
Old Knot Vector = [0,0,0,1,3,4,4,4]
New Knot Vector = [0,0,0,1,2,2,2,3,4,4,4]
Figure 6.10: De Boor algorithm.
6.11 Symmetric polynomials
We introduced polar form as simply a labeling scheme, with rules dened for creating new control
points with dierent labels. As we have seen, this level of understanding is sucient to perform
many of the basic operations on B-Spline curves. However, there is some beautiful mathematics
behind these labels, based on symmetric polynomials.
A symmetric polynomial represents a degree m polynomial in one variable, p(t), as a polynomial
in n m variables, p[t
1
, . . . , t
n
], that is degree one in each of those variables and such that
p[t, . . . , t] = p(t).
p[t
1
, . . . , t
n
] is said to be symmetric because the value of the polynomial will not change if the
arguments are permuted. For example, if n = 3, p[a, b, c] = p[b, c, a] = p[c, a, b] etc.
A symmetric polynomial has the form
p[t
1
, . . . , t
n
] =
n

i=0
c
i
p
i
[t
1
, . . . , t
n
]
where
p
0
[t
1
, . . . , t
n
] = 1; p
i
[t
1
, . . . , t
n
] =

n
j=1
t
j
p
i1
[t
1
, . . . , t
j1
, t
j+1
, . . . , t
n
]
n
, i = 1, . . . n.
For example,
p[t
1
] = c
0
+ c
1
t
1
,
p[t
1
, t
2
] = c
0
+ c
1
t
1
+ t
2
2
+ c
2
t
1
t
2
,
p[t
1
, t
2
, t
3
] = c
0
+ c
1
t
1
+ t
2
+ t
3
3
+ c
2
t
1
t
2
+ t
1
t
3
+ t
2
t
3
3
+ c
3
t
1
t
2
t
3
,
and
p[t
1
, t
2
, t
3
, t
4
] = c
0
+ c
1
t
1
+ t
2
+ t
3
+ t
4
4
+ c
2
t
1
t
2
+ t
1
t
3
+ t
1
t
4
+ t
2
t
3
+ t
2
t
4
+ t
3
t
4
6
+c
3
t
1
t
2
t
3
+ t
1
t
2
t
4
+ t
1
t
3
t
4
+ t
2
t
3
t
4
4
+ c
4
t
1
t
2
t
3
t
4
.
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
64 Combining Bezier curves into a B-spline
The symmetric polynomial b[t
1
, . . . t
n
] for which p[t, . . . t] = p(t) is referred to as the polar form or
blossom of p(t).
Example Find the polar form of p(t) = t
3
+ 6t
2
+ 3t + 1.
Answer: p[t
1
, t
2
, t
3
] = 1 + 3
t1+t2+t3
3
+ 6
t1t2+t1t3+t2t3
3
+ t
1
t
2
t
3
.
TheoremFor every degree m polynomial p(t) there exists a unique symmetric polynomial p[t
1
, . . . , t
n
]
of degree n m such that p[t, . . . , t] = p(t). Furthermore, the coecients b
i
of the degree n Bernstein
polynomial over the interval [a, b] are
b
i
= p[a, . . . , a
. .
ni
, b, . . . , b
. .
i
]
Example Convert p(t) = t
3
+6t
2
+3t +1 to a degree 3 Bernstein polynomial over the interval [0, 1].
We use the polar form of p(t): p[t
1
, t
2
, t
3
] = 1 + 3
t1+t2+t3
3
+ 6
t1t2+t1t3+t2t3
3
+ t
1
t
2
t
3
. Then,
b
0
= p[0, 0, 0] = 1, b
1
= p[0, 0, 1] = 2, b
2
= p[0, 1, 1] = 5, b
3
= p[1, 1, 1] = 11.
6.12 Combining Bezier curves into a B-spline
Here we suggest how to convert a string of cubic Bezier curves into a single B-spline. The process
initializes by assigning the rst four B-spline control points to be the control points of the rst Bezier
curve, and the knot vector is initially [0, 0, 0, 0, 1, 1, 1, 1].
Thereafter, each subsequent Bezier curve is analyzed to determine what order of continuity exists
between it and the current B-spline, and it is appended to the B-spline as follows. Assume that at
some step in this process, the B-spline has a knot vector [k
i3
, k
i2
, k
i1
, k
i
, k
i+1
, k
i+1
, k
i+1
, k
i+1
]
with k
i2
k
i1
k
i
< k
i+1
, and the B-spline control points are labelled
P
1
, . . . , P
n3
, P
n2
, P
n1
, P
n
.
The control points of the Beziercurve to be appended are
Q
0
= P
n
, Q
1
, Q
2
, Q
3
.
Then, depending on the continuity order between the B-spline and the Bezier curve, the B-spline
after appending the Bezier becomes
Continuity Knot Vector Control Points
C
0
[. . . , k
i2
, k
i1
, k
i
, k
i+1
, k
i+1
, k
i+1
, e, e, e, e] . . . , P
n3
, P
n2
, P
n1
, P
n
, Q
1
, Q
2
, Q
3
C
1
[. . . , k
i2
, k
i1
, k
i
, k
i+1
, k
i+1
, e, e, e, e] . . . , P
n3
, P
n2
, P
n1
, Q
1
, Q
2
, Q
3
C
2
[. . . , k
i2
, k
i1
, k
i
, k
i+1
, e, e, e, e] . . . , P
n3
, P
n2
, P

, Q
2
, Q
3
C
3
[. . . , k
i2
, k
i1
, k
i
, e, e, e, e] . . . , P
n3
, P

, P

, Q
3
C
0
continuity occurs if control points P
n1
, P
n
, and Q
1
are not collinear. If they are collinear, then
the value of knot e is chosen so as to satisfy
|[P
n
P
n1
](k
i+1
k
i
) [Q
1
P
n
](e k
i+1
)| < TOL
This provides for C
1
(not merely G
1
) continuity. TOL is a small number which is needed to account
for oating point error. An appropriate value for TOL is the width of the reverse map of a pixel
into world space.
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
Knot Intervals 65
C
2
continuity occurs if, in addition to C
1
continuity, the relationship
|(P
n2
Q
2
)(k
i+1
k
i1
)(k
i+1
e) + (P
n1
P
n2
)(e k
i1
)(k
i+1
e) + (Q
2
Q
1
)(k
i
e)(k
i+1
k
i1
)| < TOL.
is satised. We can then compute
P

=
(k
i+1
e)P
n2
+ (e k
i1
)P
n1
k
i+1
k
i1
=
(k
i+1
k
i
)Q
2
+ (e k
i+1
)Q
1
e k
i
.
C
3
continuity occurs if, further, the relationship


(e k
i+1
)P

+ (k
i+1
k
i1
)P

e k
i1

< TOL
is satised, where
P

=
(e k
i2
)P
n2
+ (k
i1
e)P
n3
k
i1
k
i2
and
P

=
(k
i+1
k
i
)Q
3
+ (k
i
e)Q
2
k
i+1
e
6.13 Knot Intervals
B-spline curves are typically specied in terms of a set of control points, a knot vector, and a
degree. Knot information can also be imposed on a B-spline curve using knot intervals, introduced
in [SZSS98] as a way to assign knot information to subdivision surfaces. A knot interval is the
dierence between two adjacent knots in a knot vector, i.e., the parameter length of a B-spline curve
segment. For even-degree B-spline curves, a knot interval is assigned to each control point, since each
control point in an even-degree B-spline corresponds to a curve segment. For odd-degree B-spline
curves, a knot interval is assigned to each control polygon edge, since in this case, each edge of the
control polygon maps to a curve segment.
While knot intervals are basically just an alternative notation for representing knot vectors, knot
intervals oer some nice advantages. For example, knot interval notation is more closely coupled to
the control polygon than is knot vector notation. Thus, knot intervals have more geometric meaning
than knot vectors, since the eect of altering a knot interval can be more easily predicted. Knot
intervals are particularly well suited for periodic B-splines.
Knot intervals contain all of the information that a knot vector contains, with the exception
of a knot origin. This is not a problem, since the appearance of a B-spline curve is invariant
under linear transformation of the knot vectorthat is, if you add any constant to each knot the
curves appearance does not change. B-splines originated in the eld of approximation theory and
were initially used to approximate functions. In that context, parameter values are important, and
hence, knot values are signicant. However, in curve and surface shape design, we are almost never
concerned about absolute parameter values.
For odd-degree B-spline curves, the knot interval d
i
is assigned to the control polygon edge
P
i
P
i+1
. For even-degree B-spline curves, knot interval d
i
is assigned to control point P
i
. Each
vertex (for even degree) or edge (for odd degree) has exactly one knot interval. If the B-spline is
not periodic,
n1
2
end-condition knot intervals must be assigned past each of the two end control
points. They can simply be written adjacent to phantom edges or vertices sketched adjacent to
the end control points; the geometric positions of those phantom edges or vertices are immaterial.
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
66 Knot Intervals
P(1,2,3)
P(2,3,4)
P(3,4,6)
P(4,6,9)
P(6,9,10)
P(9,10,11)
t=3
t=4
t=6
t=9
Knot Vector = [1,2,3,4,6,9,10,11]
P
0
P
1
P
2
P
3
P
4
P
5
d
-1=1
d
0=1
d
1=1
d
2=2
d
3=3
d
4=1
d
5=1
t=3
t=4
t=6
t=9
Knot Vector = [1,2,3,4,6,9,10,11]
Figure 6.11: Sample cubic B-spline
Figure 6.11 shows a cubic B-spline curve. The control points in Figure 6.11.a are labeled with
polar values, and Figure 6.11.b shows the control polygon edges labeled with knot intervals. End-
condition knots require that we hang one knot interval o each end of the control polygon. Note
the relationship between the knot vector and the knot intervals: Each knot interval is the dierence
between two consecutive knots in the knot vector.
For periodic B-splines, things are even simpler, since we dont need to deal with end conditions.
Figure 6.12 shows two cubic periodic B-splines labelled with knot intervals. In this example, note
P
0
P
1
P
2
P
3
P
4
d
0
= 1
d
1
= 1
d
2
= 1
d
3
= 1
d
4
= 1
P
0
P
1
P
2
P
3
P
4
d
0
= 2
d
1
= 3
d
2
= 2
d
3
= 1
d
4
= 1
Figure 6.12: Periodic B-splines labelled with knot intervals
that as knot interval d
1
changes from 1 to 3, the length of the corresponding curve segment increases.
Figure 6.13 shows two periodic B-splines with a double knot (imposed by setting d
0
= 0) and a
triple knot (set d
0
= d
1
= 0).
In order to determine formulae for operations such as knot insertion in terms of knot intervals,
it is helpful to infer polar labels for the control points. Polar algebra [Ram89b] can then be used to
create the desired formula. The arguments of the polar labels are sums of knot intervals. We are
free to choose any knot origin. For the example in Figure 6.14, we choose the knot origin to coincide
with control points P
0
. Then the polar values are as shown in Figure 6.14.b.
The following subsections show how to perform knot insertion and interval halving, and how
to compute hodographs using knot intervals. These formulae can be veried using polar labels.
The expressions for these operations written in terms of knot vectors can be found, for example,
in [HL93].
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
Knot Intervals 67
P
0
P
1
P
2
P
3
P
4
d
0
= 0
d
1
= 1
d
2
= 1
d
3
= 1
d
4
= 1
P
0
P
1
P
2
P
3
P
4
d
0
= 0 d
1
= 0
d
2
= 1
d
3
= 1
d
4
= 1
Figure 6.13: Periodic B-splines with double and triple knots.
P
0
P
1
P
2
P
3
P
4
d
0
d
1
d
2
d
3
d
4
f(-d
4
,0,d
0
)
f(0,d
0
,d
0
+d
1
)
f(d
0
,d
0
+d
1
,d
0
+d
1
+d
2
)
f(d
0
+d
1
,d
0
+d
1
+d
2
,d
0
+d
1
+d
2
+d
3
) P
4
d
0
d
1
d
2
d
3
d
4
b
Figure 6.14: Inferring polar labels from knot intervals.
6.13.1 Knot Insertion
Recall from Section 6.7 that knot insertion is a fundamental operation whereby control points are
added to a B-Spline control polygon without changing the curve. In Section 6.7, knot insertion
is discussed in terms of knot vectors and polar form. We can perform knot insertion using knot
intervals, as well. In fact, the construction algorithm is perhaps even easier to remember and to
carry out than the polar form construction.
Using knot intervals, it is more natural to speak of interval splitting than of knot insertion. For
example, Figure 6.15 shows a cubic periodic B-Spline in which the red knot interval is split into two
knot intervals that sum to the original knot interval. The only question we need to address is, how
can we compute the Cartesian coordinates of the white control points in Figure 6.15.b.
Figure 6.16 illustrates how to compute those control points. Split the white, red, and green edges
of the control polygon into three segments each whose lengths are proportional to the neighboring
knot intervals, as shown in Figure 6.16.a. Each of those three edges contains a segment labeled
with a red 3. Split each of those segments into two pieces whose lengths are proportional to 1:2,
as shown in Figure 6.16.b. This produces the three desired control points. Figure 6.17 shows the
procedure for splitting the interval 3 into two equal intervals.
An important special case involves inserting a zero knot interval. In knot vector jargon, this is
the same as inserting a double knot. In knot interval jargon, we can say that we are splitting a knot
interval into two intervals, one of which is zero, and the other of which is the original knot interval.
This special case is illustrated in Figure 6.18.a and Figure 6.18.b. If we repeat this operation three
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
68 Knot Intervals
2
3
1
2
1
(a) Periodic Cubic B-Spline Labeled with Knot In-
tervals.
2
1
2
1
2
1
(b) Splitting Interval 3 into Intervals 1 and 2.
Figure 6.15: Knot Insertion using Knot Intervals.
2 3
1
2
1
1
2
3
2
3
1
2
1
3
(a) Dividing Edges of the Control Polygon into Three
Segments Whose Lengths are Proportional to the
Neighboring Knot Intervals.
1
2
2
1
2
1
1
2
1
2
1
2
(b) Splitting Intervals Labeled with a 3 into Intervals
1 and 2.
Figure 6.16: Interval Splitting using Knot Intervals.
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
Knot Intervals 69
2
1
.
5
1
.
5
1
2
1
(a) Splitting the Interval Labeled with a 3 into In-
tervals 1.5 and 1.5.
1
2
2
1
2
1
1
.
5
1
.
5
1
.
5
1
.
5
1
.
5
1
.
5
(b) Construction.
Figure 6.17: Interval Splitting using Knot Intervals.
more times, arriving at the knot interval conguration shown in Figure 6.18.c, we uncover the Bezier
control points for the red Bezier curve. The reason for this will be clear if you recall that a Bezier
curve is a special case of B-Spline curve with knot vector [a, a, a, b, b, b]. Converting from knot vector
to knot interval notation, we see that the two pairs of adjacent zero knot interval in Figure 6.18.c
represent two sets of triple knots in the knot vector.
2
3
0
1
2
1
(a) Splitting the Interval La-
beled with a 3 into Intervals 3
and 0.
1
2
2
1
2
1
3
0
3
0
3
0
(b) Construction.
2
0
0
3
0
0
1
2
1
(c) Bezier control points.
Figure 6.18: Introducing Zero Knot Intervals.
6.13.2 Interval Halving
Subdivision surfaces such as the Catmull-Clark scheme are based on the notion of inserting a knot
half way between each existing pair of knots in a knot vector. These methods are typically restricted
to uniform knot vectors. Knot intervals help to generalize this technique to non-uniform B-splines.
Using knot intervals, we can think of this process as cutting in half each knot interval. For a quadratic
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
70 Knot Intervals
non-uniform B-spline, the interval halving procedure is a generalization of Chaikins algorithm, but
the placement of the new control points becomes a function of the knot interval values. If each knot
interval is cut in halve, the resulting control polygon has twice as many control points, and their
coordinates Q
k
are:
Q
2i
=
(d
i
+ 2d
i+1
)P
i
+ d
i
P
i+1
2(d
i
+ d
i+1
)
Q
2i+1
=
d
i+1
P
i
+ (2d
i
+ d
i+1
)P
i+1
2(d
i
+ d
i+1
)
(6.3)
as illustrated in Figure 6.19.
P
i-1
P
i+1
d
i-1
d
i-1
d
i
d
i
d
i+1
d
i+1
d
i
/2
d
i
/2
d
i+1
/2
Q
2i-1 Q
2i
Q
2i+1
Figure 6.19: Interval halving for a non-uniform quadratic B-spline curve.
For non-uniform cubic periodic B-spline curves, interval halving produces a new control point
corresponding to each edge, and a new control point corresponding to each original control point.
The equations for the new control points Q
k
generated by interval halving are:
Q
2i+1
=
(d
i
+ 2d
i+1
)P
i
+ (d
i
+ 2d
i1
)P
i+1
2(d
i1
+ d
i
+ d
i+1
)
(6.4)
Q
2i
=
d
i
Q
2i1
+ (d
i1
+ d
i
)P
i
+ d
i1
Q
2i+1
2(d
i1
+ d
i
)
(6.5)
as shown in Figure 6.20.
P
i-1 P
i+1
Q
2i-1
Q
2i
Q
2i+1
d
i-1
d
i
d
i 1
d
i 2
d
i-1
/2
d
i
/2
Figure 6.20: Interval halving for a non-uniform cubic B-spline curve.
Note that each new knot interval is half as large as its parent.
6.13.3 Degree-Two B-Splines using Knot Intervals
For any odd-degree B-Spline curve, the knot intervals are associated with the edges of the control
polygon. For even-degree, the knot intervals are associated with the control points. Figure 6.21
shows two quadratic B-Splines with dierent knot intervals.
Figure 6.22 illustrates how to perform interval splitting for a quadratic B-Spline. Figure 6.23
illustrates how to split o a zero-knot interval on a quadratic B-Spline. To nd the Bezier control
points in a quadratic B-Spline, it suces to insert a single zero knot interval on each side of a
non-zero knot interval.
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
Knot Intervals 71
3
1
2 1
2
(a) Example 1.
3
0
2 1
2
(b) Example with Zero Knot Interval.
Figure 6.21: Quadratic B-Spline Curves.
1
2 1
2
1.5
1.5
(a) Splitting the Knot Interval 3 into two
equal knot intervals.
3
1
2 1
2
2
1
.
5
1
.
5 1
.
5
1
.
5
1
(b) Construction for the Interval Splitting.
Figure 6.22: Interval Splitting of a Quadratic B-Spline Curve.
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
72 Knot Intervals
1
2 1
2
3
0
(a) Splitting the Knot Interval 3 into two
equal knot intervals.
3
1
2 1
2
2
3
0
3
0
1
(b) Construction for the Interval Splitting.
Figure 6.23: Interval Splitting of a Quadratic B-Spline Curve.
6.13.4 Hodographs
Section 2.7 discusses the hodograph of a polynomial Bezier curve. The hodograph of a polynomial
B-Spline curve can be constructed in a similar manner.
.
2
3
1
2
1
1
2
1
2
3
Hodograph
Figure 6.24: Hodograph of a Degree 3 Polynomial B-Spline Curve.
Figure 6.24 shows a cubic B-Spline curve and its hodograph, represented as a degree-two B-Spline
curve. Note the relationship between the knot vectors in the original curve and in its hodograph.
The control points for the hodograph are found in a manner similar to the control points for a Bezier
hodograph.
The exact formula for the control points, as illustrated in Figure 6.25, is as follows. The hodo-
graph of a degree n B-spline P(t) with knot intervals d
i
and control points P
i
is a B-spline of degree
n 1 with the same knot intervals d
i
and with control points Q
i
where
Q
i
= c
i
(P
i+1
P
i
). (6.6)
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
Knot Intervals 73
2
3
1
V
3V
1+2+3
(0,0)
(a)
2
3
1
V
3V
2+3+1
(0,0)
(b)
Figure 6.25: Finding the Control Points of a B-Spline Hodograph.
The scale factor c
i
is the inverse of the average value of n neighboring knot intervals. Specically, if
the curve is even-degree n = 2m, then
c
i
=
n
d
im+1
+ . . . + d
i+m
and if the curve is odd degree n = 2m + 1
c
i
=
n
d
im
+ . . . + d
i+m
6.13.5 Degree elevation
Ramshaw [Ram89b] presented an elegant insight into degree elevation using polar form. The sym-
metry property of polar labels demands that
f(a, b) =
f(a) + f(b)
2
; f(a, b, c) =
f(a, b) + f(a, c) + f(b, c)
3
; (6.7)
f(a, b, c, d) =
f(a, b, c) + f(a, b, d) + f(a, c, d) + f(b, c, d)
4
; etc. (6.8)
The procedure of degree elevation on a periodic B-spline that is labeled using knot intervals
results in two eects. First, an additional control point is introduced for each curve segment.
Second, if the sequence of knot intervals is initially d
1
, d
2
, d
3
, . . ., the sequence of knot intervals on
the degree elevated control polygon will be d
1
, 0, d
2
, 0, d
3
, 0, . . .. The zeroes must be added because
degree elevation raises the degree of each curve segment without raising the continuity between curve
segments,
Degree elevation of a degree one B-spline is simple: merely insert a new control point on the
midpoint of each edge of the control polygon. The knot intervals are as shown in Figures 6.26.a and
b.
Degree elevation for a degree two B-spline is illustrated in Figures 6.26.c and d. The new control
points are:
P
i,j
=
(2d
i
+ 3d
j
)P
i
+ d
i
P
j
3d
i
+ 3d
j
. (6.9)
Figure 6.27 illustrates degree elevation from degree three to four. The equations for the new
control points are:
P
i,i+1
=
(d
i
+ 2d
i+1
)P
i
+ (2d
i1
+ d
i
)P
i+1
2(d
i1
+ d
i
+ d
i+1
)
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
74 Knot Intervals
.
P
0
P
1
P
2
P
3
d
0
d
1
d
2
d
3
a. Degree one B-spline
P
0
P
1
P
2
P
3
P
01
P
12
P
23
0
0
0
0
d
0
d
1
d
2
d
3
b. Degree elevation of (a.)
P
0
P
1
P
2
P
3
d
0
d
1
d
2
d
3
c. Degree two B-spline
P
01
P
10
P
12
P
21
P
23
P
32
P
30
P
03
0
0
0
0
d
0
d
1
d
2
d
3
b. Degree elevation of (c.)
Figure 6.26: Degree elevating a degree one and degree two B-spline.
d
0
d
1
d
2
d
3
P
0
P
1
P
2
P
3
P
4
a. Cubic B-spline.
d
0
d
1
d
2
d
3
0
0
0
P
01
Q
1
P
12
Q
2
P
23 Q
3
P
34
b. Degree elevated.
Figure 6.27: Degree elevating a degree three B-spline.
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
B-spline Basis Functions 75
Q
i
=
d
i
4(d
i2
+ d
i1
+ d
i
)
P
i1
+
_
d
i2
+ d
i1
4(d
i2
+ d
i1
+ d
i
)
+
d
i
+ d
i+1
4(d
i1
+ d
i
+ d
i+1
)
+
1
2
_
P
i
+
d
i1
4(d
i1
+ d
i
+ d
i+1
)
P
i+1
6.14 B-spline Basis Functions
A degree d B-spline curve with n control points can be expressed
P(t) =
n

i=1
P
i
B
d
i
(t).
The knot vector for this curve contains n + d 1 knots, denoted [t
1d/2
, . . . , t
n+(d1)/2
].
Each B-spline basis function B
d
i
(t) can be expressed as an explicit B-spline curve whose x coor-
dinates are the Greville abscissae (Section 6.9) and whose y coordinates are all zero except y
i
= 1.
Therefore, B
d
i
(t) = 0 for t t
i(d+1)/2
and t t
i+(d+1)/2
. Each basis function is a piecewise poly-
nomial that has d +1 non-zero segments. For example, the cubic B-spline in Figure 6.28, n = 7 and
the knot vector is [0, 0, 0, 2, 3, 4, 5, 5, 5]. The basis function B
3
3
(t) is shown in Figure ??.
.
P
1
= f(0,0,0)
P
2
= f(0,0,2)
P
3
= f(0,2,3)
P
4
= f(2,3,4)
P
5
= f(3,4,5)
P
6
= f(4,5,5)
P
7
= f(5,5,5)
Figure 6.28: Cubic B-Spline Curve.
.
t
B
3
3
(t)
f(0,0,0)
= (0,0)
f(0,0,2)
= (2/3,0)
f(0,2,3) = (5/3,1)
f(2,3,4)
= (3,0)
f(3,4,5)
= (4,0)
f(4,5,5)
= (14/3,0)
f(5,5,5)
= (5,0)
Figure 6.29: Basis function B
3
3
(t).
The basis function in Figure 6.29 is just like any other B-Spline curve. To evaluate B
3
3
(t), we
compute polar value f(t, t, t) using knot insertion. The y coordinate of f(t, t, t) is B
3
3
(t), and the
x-coordinate of f(t, t, t) is t.
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
76 B-spline Basis Functions
6.14.1 B-Spline Basis-Functions using Knot Intervals
Basis functions for B-Splines dened using knot intervals can likewise be represented as explicit
B-Spline curves (Section 6.9). For the curve in Figure 6.30, the basis function for P
i
is illustrated
in Figure 6.31.
.
di-
1
d
i
d
i+1
P
i-2
P
i-1
P
i
P
i+1
P
i+2
P
i+3
Figure 6.30: Sample Cubic B-Spline Curve.
.
t
B(t)
0
1
d
i-2
d
i-1
d
i
d
i+1
t
1
t
2
t
3
t
4
t
5
Figure 6.31: B-Spline Basis Function for Control Point P
i
in Figure 6.30.
B(t) is the y-coordinates the curve in Figure 6.31. Those y-coordinates are easily evaluated in
the same manner as you would evaluate a point on any B-Spline curve. Note that the y-coordinates
of the control points of this explicit B-Spline curve are all zero, except for the control point whose
basis function we desire.
If we now evaluate a point on this explicit B-Spline curve using the knot-interval version of the de
Boor algorithm, we arrive at the following equations for the B-Spline basis function in Figure 6.31.
For t [t
1
, t
2
]:
B(t) =
(t t
1
)
3
(t
4
t
1
)(t
3
t
1
)
(
t
2
t
1
)
(6.10)
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
B-spline Basis Functions 77
For t [t
2
, t
3
]:
B(t) =
(t t
2
)
2
(t
5
t)
(t
5
t
2
)(t
4
t
2
)(t
3
t
2
)
+
(t t
2
)(t t
1
)(t
4
t)
(t
4
t
1
)(t
4
t
2
)(t
3
t
2
)
+
(t
3
t)(t t
1
)
2
(t
4
t
1
)(t
3
t
1
)(t
3
t
2
)
(6.11)
For t [t
3
, t
4
]:
B(t) =
(t
4
t)
2
(t t
1
)
(t
4
t
1
)(t
4
t
2
)(t
4
t
3
)
+
(t
4
t)(t
5
t
)
(t t
2
)
(t
5
t
2
)(t
4
t
2
)(t
4
t
3
)
+
(t t
3
)(t
5
t)
2
(t
5
t
2
)(t
5
t
3
)(t
4
t
3
)
(6.12)
For t [t
4
, t
5
]:
B(t) =
(t
5
t)
3
(t
5
t
2
)(t
5
t
3
)
(
t
5
t
4
)
(6.13)
These four polynomials are C
2
, with
B

(t
1
) = B

(t
1
) = 0, B

(t
2
) =
3(t
2
t
1
)
(t
3
t
1
)(t
4
t
1
)
, B

(t
2
) =
6
(t
3
t
1
)(t
4
t
1
)
,
B

(t
3
) =
3(t
1
(t
2
t
3
) t
2
t
3
+ t
3
t
4
+ t
3
t
5
t
4
t
5
)
(t
1
t
4
)(t
2
t
4
)(t
2
t
5
)
, B

(t
3
) =
6(t
1
+ t
2
t
4
t
5
)
(t
1
t
4
)(t
4
t
2
)(t
2
t
5
)
B

(t
4
) =
3(t
5
t
4
)
(t
5
t
2
)(t
5
t
3
)
, B

(t
4
) =
6
(t
5
t
2
)(t
5
t
3
)
6.14.2 Renement of B-Spline Basis Functions
Denote by
N[s
0
, s
1
, . . . , s
n+1
](s)
a B-Spline basis function of degree n over a knot vector {s
0
, s
1
, . . . , s
n+1
} and with support [s
0
, s
n+1
].
Upon inserting a knot k for which s
i
k s
i+i
, the basis function is split into two scaled basis
functions:
N[s
0
, s
1
, . . . , s
n+1
](s) = c
i
N[s
0
, . . . , s
i
, k, s
i+1
, . . . , s
n
](s) + d
i
N[s
1
, . . . , s
i
, k, s
i+1
, . . . , s
n+1
](s)
where
c
i
=
_
ks0
sn+1s0
k < s
n
1 k s
n
d
i
=
_
sn+1k
sn+1s1
k > s
1
1 k s
1
6.14.3 Recurrence Relation
B-spline basis functions can also be dened using the following recurrence relations.
A degree zero B-spline curve is dened over the interval [t
i
, t
i+1
] using one control point, P
0
. Its
basis function, which we will denote B
0
i
(t) is the step function
b
0
i
(t) =
_
1 if t
i
t t
i+1
0 otherwise.
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012
78 B-spline Basis Functions
The curve B
0
i
(t)P
0
consists of the discrete point P
0
.
Blending functions for higher degree B-splines are dened using the recurrence relation:
B
k
i
(t) =
k
i
(t)B
k1
i
(t) + (1
k
i+1
(t))B
k1
i+1
(t) (6.14)
where

k
i
(t) =
_
tti
t
i+k1
ti
if t
i
= t
i+k1
0 otherwise.
A degree one B-spline curve is dened over the interval [t
i
, t
i+1
] using two control points, which
we will denote as polar values P(t
i
) and P(t
i+1
). The curve is simply the line segment joining the
two control points:
P(t) =
t
i+1
t
t
i+1
t
i
P(t
i
) +
t t
i
t
i+1
t
i
P(t
i+1
).
A single degree n B-spline curve segment dened over the interval [t
i
, t
i+1
] with knot vector
{. . . , t
i1
, t
i
, t
i+1
, t
i+2
, . . .} has n + 1 control points written as polar values
P(t
i+1n
, . . . , t
i
), . . . , P(t
i+1
, . . . , t
i+n
)
and blending functions B
n
i
(t) which are obtained from equation 6.14. The equation for the curve is:
P(t) =
n+i

j=i
B
n
j+1n
(t)P(t
j+1n
, . . . , t
j
) (6.15)
In approximation theory, the basis functions themselves are referred to as B-splines.
T. W. Sederberg, BYU, Computer Aided Geometric Design Course Notes October 23, 2012

You might also like