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.
For a pdf version of these notes look
here
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
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
To calculate this quantity, we will use the
diagonalization
of the matrix
which states that
![]() |
|||
![]() |
|||
![]() |
![]() |
![]() |
||
![]() |
|||
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
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.