On-Line Geometric Modeling Notes

Quadratic Uniform B-Spline Curve Refinement


Overview

Subdivision methods for curve generation are based upon a procedure which successively refines a control polygon into into a sequence of control polygons that, in the limit, converges to a curve. The curves are commonly called subdivision curves as the refinement methods are based upon the binary subdivision of uniform B-spline curves.

The uniform B-spline curves, surfaces and solids have been extensively studied in the literature and subdivision methods for these objects are well known. We develop here the refinement method for a quadratic uniform B-spline curve and show that the refinement is exactly that specified by Chaikin's Algorithm [1].

For a postscript version of these notes look here.


The Matrix Equation for the Quadratic Uniform B-Spline Curve

Given a set of control points tex2html_wrap_inline140 the quadratic uniform B-spline curve tex2html_wrap_inline142 defined by these control points can be defined in segments by the n-1 equations
displaymath21
for k = 0, 1, ..., n-2, and tex2html_wrap_inline148, and where
displaymath31
The matrix M, when multiplied by tex2html_wrap_inline152 defines the quadratic uniform B-spline blending functions.


Splitting and Refinement

We will begin by studying the binary subdivision of a quadratic uniform B-spline curve tex2html_wrap_inline154 defined by the control polygon tex2html_wrap_inline156, containing only three points, and then extend this to control polygons containing larger numbers of points.

tex2html_wrap172

We can perform a binary subdivision of the curve, by applying one of two splitting matrices
eqnarray43
to the control polygon. (When applied to the control polygon tex2html_wrap_inline158 gives the first half of the curve, and tex2html_wrap_inline160 gives the second half.)

As it turns out, several of the control points for the two subdivided components are the same. Thus, we can combine these matrices, creating a tex2html_wrap_inline162 matrix
displaymath57
and apply it to a control polygon as follows:
displaymath64
and so the refined curve has control points that are positioned as in the following illustration:

tex2html_wrap174

i.e. at tex2html_wrap_inline164 and tex2html_wrap_inline166 along each of the lines of the control polygon. These are the same points as are developed in Chaikin's method


The General Refinement Procedure

The general procedure is - 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 tex2html_wrap_inline168 and tex2html_wrap_inline170 between the endpoints of the edge. The general idea behind subdivision curves is to assemble these points into a new control polygon which can then be used as input to another refinement operation, generating a new set of points and another control polygon - and then continue this process until a refinement is reached that accurately represents the curve to a desired resolution. The following illustration shown the second refinement in the case above.

tex2html_wrap176

Since this general refinement procedure is developed from the binary subdivision of a uniform B-spline curve, and the control points of the refined polygon are unions of those of the subdivided curves, we then have that the control points of the refined polygons must converge to the curve. That is, in the limit, the sequence of control polygons generated by the refinement procedure converges to a quadratic uniform B-spline curve. This shows that Chaikin's curve is really a quadratic uniform B-spline curve.


Summary

Given a control polygon we can specify a simple process that can be used to generate successive refinements of the control polygon and, in the limit, converges to the uniform B-spline curve defined by the original control polygon. This scheme is the basis for the development of the Doo-Sabin subdivision scheme which generalizes Chaikin's algorithm to surfaces.


References

1
CHAIKIN, G. An algorithm for high speed curve generation. Computer Graphics and Image Processing 3 (1974), 346-349.

2
RIESENFELD, R. On Chaikin's algorithm. IEEE Computer Graphics and Applications 4, 3 (1975), 304-310.


This document maintained by Ken Joy

Comments to the Author

All contents copyright (c) 1996, 1997
Computer Science Department,
University of California, Davis
All rights reserved.



Ken Joy
Thu Jul 24 12:28:37 PDT 1997