A B-spline curve is defined as a linear combination of control points
and B-spline basis functions
given by
(1.62)
In this context the control points are called de Boor
points. The basis function
is defined on
a knot vector
(1.63)
where there are
elements, i.e. the number of control points
plus the order of the curve
. Each knot span
is mapped onto a polynomial
curve between two successive joints
and
. Normalization of the knot vector, so it covers the
interval [0,1], is helpful in improving numerical accuracy in floating
point arithmetic computation due to the higher density of floating
point numbers in this interval
[133,300].
Figure 1.10:
An order four B-spline basis functions with uniform knot vector
Figure 1.11:
A clamped cubic B-spline curve
A B-spline curve has the following
properties:
Geometry invariance property:
Partition of unity property of the B-spline assures the
invariance of the shape of the B-spline curve under translation and
rotation.
End points geometric property:
Unlike Bézier curves, B-spline curves do not in general pass through
the two end control points.
Increasing the multiplicity of a knot reduces the continuity of the
curve at that knot. Specifically, the curve is
times
continuously differentiable at a knot with multiplicity
, and thus has
continuity. Therefore, the control
polygon will coincide with the curve at a knot of multiplicity
,
and a knot with multiplicity
indicates
continuity, or a
discontinuous curve. Repeating the knots at the end
times will
force the endpoints to coincide with the control polygon. Thus the
first and the last control points of a curve with a knot vector
described by
(1.64)
coincide with the endpoints of the curve. Such knot vectors and
curves are known as clamped [314]. In other words, clamped/unclamped refers to whether both ends of the knot vector have
multiplicity equal to
or not. Figure
1.10 shows cubic B-spline basis functions defined
on a knot vector
. A clamped cubic B-spline curve based on
this knot vector is illustrated in Fig. 1.11
with its control polygon.
B-spline curves with a knot vector (1.64)
are tangent to the control polygon at their endpoints. This is derived
from the fact that the first derivative of a B-spline curve
is given
by [175]
(1.65)
where the knot vector is obtained by dropping the first and last knots
from (1.64), i.e.
(1.66)
and
(1.67)
(1.68)
Convex hull property:
The convex hull property for B-splines applies locally, so that a span
lies within the convex hull of the control points that affect it.
This provides a tighter convex hull property than that of a Bézier
curve, as can be seen in Fig. 1.11. The
-th
span of the cubic B-spline curve in Fig. 1.11 lies
within the convex hull formed by control points
,
,
,
. In other words, a B-spline
curve must lie within the union of all such convex hulls formed by
successive control points [130].
Local support property:
A single span of a B-spline curve is
controlled only by
control points, and any control point affects
spans. Specifically, changing
affects the curve in
the parameter range
and the curve at a point
where
is determined completely by the control
points
as shown in Fig. 1.11.
Variation diminishing property:
2-D: The number of intersections of a straight line
with a planar B-spline curve is no greater than the number of
intersections of the line with the control polygon. A line intersecting
the convex hull of a planar B-spline curve may intersect the curve
transversally,
be tangent to the curve, or not intersect the curve at all. It may
not, however, intersect the curve more times than it intersects the
control polygon.
3-D: The same relation holds true for a plane
with a 3-D space B-spline curve.
B-spline to Bézier property:
From the discussion
of end points geometric property, it can be seen that a
Bézier curve of order
(degree
)
is a B-spline curve with no internal knots and the end knots repeated
times. The knot vector is thus
(1.69)
where
or
.
Figure 1.12:
The de Boor algorithm
Next: 1.4.3 Algorithms for B-spline
Up: 1.4 B-spline curves and
Previous: 1.4.1 B-splines
Contents Index
December 2009