Overview
Splitting a uniform B-spline curve involves creating two new curves, one that represents the first half of the original curve, and one that represents the second half. These techniques motivate much of the work on subdivision curves and provide methods that can be applied to splitting B-spline surfaces. In the uniform B-spline case the subdivided components share many of their control points, allowing us to define a ``refinement'' of the curve by the union of all control points obtained through splitting the various segments of the curve.
In these notes we develop the methods for splitting a quadratic uniform B-spline curve and show how these splitting methods can be used to define a refinement procedure on the control polygons that converges to the original curve.
For a pdf version of these notes look here.
The Matrix Equation for the Quadratic Uniform B-Spline Curve
Given a control polygon , the quadratic uniform B-spline curve defined by these control points can be defined in segments by the equations
The curve is defined by the union of the segments , . In our case, we will assume that which will imply that the curve is defined by only one segment. The methods presented for one segment can be easily expanded to a general curve.
Splitting - The First Half of the Curve
Suppose we are given a quadratic uniform B-spline curve defined by the control polygon .
To perform a binary subdivision of the curve, we will produce two curves and which, as ranges between 0 and , sweep out the curve as ranges from 0 to and from to respectively. Concentrating first on : By parameterization, we can write as and so
i.e. at one-quarter and three-quarters of the distance along the first line segment, and one-quarter of the distance along the second.
We note that since the curve has been written as
Splitting - The Second Half of the Curve
To split and produce the second portion of the curve - i.e. the portion that is swept out at ranges from to we write and calculate
i.e. at three-quarters of the distance along the first line segment, and one-quarter and three-quarters along the second.
We note that since the curve has been written as
A Refinement Procedure
In the above calculation, we have split the original curve into two portions, each of which is specified by a set of three control points. Four of the six control points are unique (two are duplicates) - and - and so the four unique control points , , and fully represent the two subdivided halves of the curve - and therefore represent the curve itself. The control polygon consisting of these four points is called a refinement of the original control polygon. Using the following figure, which lists the original vertices and the points of the refinement, it can be seen that this method develops exactly the same points as Chaikin's method
The general refinement procedure can be then described as follows: Given a control polygon, we can generate a refinement of this set of points by constructing new points along each edge of the original polygon at a distance of and between the endpoints of the edge. These constructed points can be assembled into a new control polygon which can then be used as input, for example, to another refinement operation. The following illustration shown the second refinement from the case above.
Summary
Given a control polygon specifying a quadratic uniform B-spline curve, we can specify a simple process based on the application of one of two splitting matrices that can be used to divide the curve into two components. In the uniform B-spline case, the control polygons representing the two halves of the curve share many control points. The union of these points can be used to construct a new control polygon which serves as a refinement of the original.