CatmullâÂÂRom spline is a special case of a cardinal spline. This assumes uniform parameter spacing. For tangents chosen to be
in the definition formula of cubic Hermite spline:
the following formula for the CatmullâÂÂRom spline is obtained:
The curve is named after Edwin Catmull and Raphael Rom. The principal advantage of this technique is that the points along the original set of points also make up the control points for the spline curve.
Two additional points are required on either end of the curve. The uniform CatmullâÂÂRom implementation can produce loops and self-intersections. The chordal and centripetal CatmullâÂÂRom implementations solve this problem, but use a slightly different calculation. In computer graphics, CatmullâÂÂRom splines are a common way to create smooth movement between key moments. For example, theyâÂÂre often used to turn a series of camera keyframes into a fluid camera path.
Referenced paper is for a class of splines passing through their defining points. Graphs and experimental results for the following blending functions are shown, with "case 3" being a CatmullâÂÂRom spline curve.
The model of the spline is:
where are defining points, are shifted blending functions into interval .
Below are, from left, an example of blending functions , its shifted , and a curve .
<div style="margin-left:1.5em"></div>
The blending functions are following cardinal functions:
Linear Lagrange interpolation is used, so , resulting in:
where is a blending function obtained by shifting the basis functions of a quadratic uniform B-spline.
Below are, from the left, blending functions of a quadratic uniform B-spline and the basis functions before shifting.
<div style="margin-left:1.5em"></div>
The graphs of each term in are as follows: <div style="margin-left:1.5em"></div>
Applying this to :
are obtained. Shifting these to the interval gives , and arrange them into matrix form gives:
which coincides with the definition by a cubic Hermite spline.
A CatmullâÂÂRom spline curve is interpolation that passes through its defining points, whereas a B-spline curve is approximation that do not pass through its control points.
Below are, from left, an example of blending functions, basis functions before shifting, and a curve of cubic uniform B-spline.
<div style="margin-left:1.5em"></div>
A CatmullâÂÂRom spline curve is C1 continuous by its definition and the following, but not C2 continuous:
If the difference in the intervals between the defining points is large in the middle of a curve, cusps or self-intersections may occur.
Below is an example of a self-intersection: <div style="margin-left:1.5em"></div>
Since the matrix form of a cubic Bézier curve is:
the control points of a cubic Bézier curve equivalent to the CatmullâÂÂRom spline curve are:
By taking the cartesian cross product of two Catmull-Rom splines, one can get a bivariate surface that interpolates a grid of points.ãÂÂ
It is a bicubic patch expressed by the following formula:
where
The patch interpolates the middle four points. Adjoinging patches have continuity of the first derivative.
In some cases, CatmullâÂÂRom spline is:
where the coefficient of the tangent vector is replaced with .ãÂÂ
In this case, the definition formula is as follows:
The relationship between and the tension parameter of KochanekâÂÂBartels spline (denoted as ) is as follows:
And the control points of the equivalent cubic Bézier curve are as follows: