Overview
In 1974, George Chaikin [1] gave a lecture at the University of Utah in which he specified a novel procedure for generating curves from a limited number of points. This algorithm is interesting as it was one of the first corner cutting or refinement algorithms specified to generate a curve from a set of control points, or control polygon. The algorithm had been largely forgotten by the graphics/geometric-modeling community in the flurry of activity studying B-spline curves and surfaces, as it has been shown to generate a quadratic uniform B-spline curve. However, researchers have now drifted away from the rigidity of curve and surface models based upon an underlying analytical form, and the basic paradigm of Chaikin - his curves were generated by successive refinement of a control polygon - is now utilized to generate a wide variety of curve and surface types.
For a pdf version of these notes look
here.
The Corner-Cutting Paradigm
Chaikin had a different idea. Researchers since Bézier had been working with curves generated by control polygons but had focused their analysis on the underlying analytical representation, frequently based upon Bernstein polynomials. Chaikin decided to develop algorithms that worked with the control polygon directly - so-called geometric algorithms. His curve generation scheme is based upon ``corner cutting'' where the algorithm generates a new control polygon by cutting the corners off the original one. The figure below illustrates this idea, where an initial control polygon has been refined into a second polygon (slightly offset) by cutting off the corners of the first sequence.
Clearly we could then take this second control polygon and cut the corners off it, producing a third sequence, etc. In the limit, hopefully we would have a curve. This was Chaikin's idea.
Chaikin's Method
Chaikin utilized fixed ratios on cutting off his corners, so that they
were all cut the same. When written down mathematically,
Chaikin's method proceeds as follows: Given a control
polygon
, we refine
this
control polygon by generating a new sequence of control points
That is
![]() |
|||
![]() |
Example - How Chaikin's Algorithm Works
To give an example of Chaikin's Algorithm, consider the following control polygon:
Chaikin's algorithm generates the points
and
and uses
these points to refine the curve and obtain the control polygon
shown in the figure below
These points are in turn utilized to generate a new refinement,
and again, these points are utilized to obtain another refinement, etc. The following illustration shows the initial control polygon, the third control polygon in the sequence, and the final curve.
Example - A Closed Curve
To illustrate Chaikin's curve on a closed control polygon, consider the following figure.
In this case, the control point indices are taken
modulo
(or 4, in the case of the figure). We can still
apply Chaikin's method to this figure, obtaining
This new control polygon can then be utilize to obtain a second refinement as in the following figure
and it is clear that we could continue this process indefinitely. For graphics purposes, we will stop after a number of refinements and approximate the curve by connecting the points of the resulting control polygon by straight lines. The initial control polygon and the second refinement are shown in the following figure along with the resulting curve.
Summary
Chaikin specified a simple scheme by which curves could be generated from a given control polygon. The idea is unique in that the underlying mathematical description is ignored in favor of a geometric algorithm that just selects new control points along the line segments of the original control polygon.
It should be noted that Chaikin's curve has been shown to be equivalent to a quadratic B-spline curve [2] (a piecewise quadratic Bézier curve). However, Chaikin's method avoids the analytical definition of B-splines and provides a simple, elegant curve drawing mechanism.