On-Line Geometric Modeling Notes
CATMULL-ROM SPLINES

Ferguson's Parametric Cubic Curves

The Catmull-Rom Spline is a local interpolating spline developed for computer graphics purposes. Its initial use was in design of curves and surfaces, and has recently been used several applications. This paper presents a simple development of the matrix form of this spline, using only intuitive concepts. The matrix form will arise from a simple geometrical argument that attempts to fix the tangents at certain control points to be the average of the slopes of the two line segments of the control polygon adjacent to each control point. The matrix equation is then just a simple result of matrix algebra.

Ferguson's Parametric Cubic Curves

Given the two control points and , and the slopes of the tangents and at each point, we can define a parametric cubic curve that passes through and , with the respective slopes and by equating the coefficients of the polynomial function

with the values above. Namely

Solving these equations simultaneously for , , and , we obtain

Substituting these into the original polynomial equation and simplifying to isolate the terms with , , , and , we have

which is clearly in a cubic polynomial form. Alternatively, this can be written in the following matrix form

This method can be used to obtain a curve through a more general set of control points by considering pairs of control points and using the Ferguson method for two points as developed above. It is necessary, however, to have the slopes of the tangents at each control point.

Development of the Catmull-Rom Spline

Given control points , we wish to find a curve that interpolates these control points (i.e. passes through them all), and is local in nature (i.e. if one of the control points is moved, it only affects the curve locally). We define the curve on each segment by using the two control points, and specifying the tangent to the curve at each control point to be

respectively.

Substituting these tangents into Ferguson's method, we obtain the matrix equation

or

Multiplying the two inner matrices, we obtain

where

This matrix representation defines the cubic curve that represents the portion of the total curve between two successive control points. It can be applied to all segments of the curve except for the first and last segments in which and must be defined by a different method.

Bibliography

1.
Catmull, E. and R. Rom, A Class of Local Interpolationg Splines,'' in Barnhill R.E. and R.F. Riesenfled (eds.), Computer Aided Geometric Design, Academic Press, New York, 1974.
2.
Faux, I.D. and M.J. Pratt, Computational Geometry for Design and Manufacture, Ellis Horwood Publishing, Chichester, UK, 1979.

Ken Joy
2000-11-28