Next: 1.4.3 Algorithms for B-spline Up: 1.4 B-spline curves and Previous: 1.4.1 B-splines   Contents   Index

## 1.4.2 B-spline curve

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].

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 . 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 
 (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 .

• 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 .

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