Given an arbitrary control polygon we can use a simple refinement process that generates a sequence of control polygons from the original. This sequence converges in the limit to a curve.
In the cubic case, the procedure is straightforward to define, and it is this procedure that we review in these notes.
For a pdf version of these notes look here.
The Refinement of the Control Polygon
Given a control polygon we generate a refinement of by generating a new control polygon
The rules to calculate the vertex and edge points come from the subdivision process for a uniform B-spline curve. In short,
We calculate the edge points as the midpoints of the line segments forming the control polygon
and vertex points as the average of twice the control point and the two edge points adjacent to the control point
We note that since can be written
Connecting the edges and vertex points generated by the refinement gives us the new control polygon.
Generating the Subdivision Curve
The new set of edge points and vertex points now becomes the new control polygon, and can be further refined - in our example generating
One can see the curve actually taking shape now, and it is easy to see that if we continue this process, choosing a new refinement by generating the edge points and vertex points, we will get closer and closer to the curve.
The refinement process for cubic subdivision curves is quite straightforward. In general this process is an infinite process and in the limit converges to a uniform cubic B-spline curve. If we wish to draw the curve, it is easy to define a process where the original control polygon is refined several times and the resulting control polygon is then drawn (by connecting the points of the control polygon with straight line segments) to represent the curve. With some further analysis it is also possible to directly calculate points on the limit curve knowing only the vertex and edges points of the refinement.