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.