On-Line Geometric Modeling Notes
DIRECT CALCULATION OF THE TANGENT VECTOR
ON CUBIC SUBDIVISION CURVES

Overview

Given an initial control polygon we can define a refinement process that generates a sequence of control polygons from the original. In the limit, this sequence converges to a uniform B-spline curve. We can specify a procedure, based upon eigenanalysis of the refinement matrix, that allows us to exactly calculate a point on the limit curve.

We show in these notes, that by applying the eigenanalysis further we can also calculate directly the tangent vectors on the limit curve. In this case it is the eigenvector corresponding to the eigenvalue that plays the primary role.

Direct Calculation of Points on the Curve

Select a control point and let and be the adjacent control points (thought of as edge points of the refinement). Given the refinement matrix

we can show that repeatedly applying to the vector

gives us a point on the curve. This point can be directly calculated as the dot product of the left eigenvector of that corresponds to the eigenvalue one, and the original vertex-edge vector of the refinement - obtaining the point .

Tangent Vectors to the Curve

We can also use this analysis to address the tangent vectors on the curve. Given a vertex point and the two adjacent edge points and respectively, we wish to look at the unit vectors

which is the limit of unit vectors formed from the limit point on the curve to the converging edge points - this should converge to the unit tangent vector at the point .

To calculate this quantity, we will use the diagonalization of the matrix which states that

Now, let , and be the left eigenvectors of the refinement matrix , and , and be the row vectors of the matrix of right eigenvalues of the refinement matrix . Then to calculate we have

where we have used . Since

we have

(note the division by in the second step).

Therefore, it is the left eigenvector of corresponding to the eigenvalue which determines the tangent vector to the curve, and given any vertex with corresponding edge points and , we can directly calculate the tangent vector at the limit point dotting the left eigenvector that corresponds to the eigenvalue by the vertex-edge vector

i.e. by subtracting

Summary

It is possible, using eigenanalysis, to formulate simple procedures that calculate directly a point on the limit curve, and the tangent vector on the curve at this point. This makes this refinement procedure quite simple to use.

## Bibliography

1
CATMULL, E., AND CLARK, J.
Recursively generated B-spline surfaces on arbitrary topological meshes.
Computer-Aided Design 10 (Sept. 1978), 350-355.

2
HALSTEAD, M., KASS, M., AND DEROSE, T.
Efficient, fair interpolation using Catmull-Clark surfaces.
In Computer Graphics (SIGGRAPH '93 Proceedings) (Aug. 1993), J. T. Kajiya, Ed., vol. 27, pp. 35-44.

Ken Joy
2000-11-28