A Cardinal spline( sometimes called Canonical spline )consists of a sequence of curves. Consider a single Cardinal segment:

\[
F(u) = C_0 + uC_1 + u^2C_2 + u^3C_3
\]

Suppose it starts at \(F(0) = P_i\) and ends at \(F(1)=P_{i+1}\). We don't need to provide the tangent for each point because it can be calculated from two ajacent control points. The constrant equations are very similar to the Hermite spline:

\begin{align}
P_i &= F(0)  = C_0 \\
P_{i+1} &= F(1)  =  C_0 + C_1 + C_2 + C_3 \\
P'_i &= k(P_{i+1} - P_{i-1}) = F'(0) = C_1 \\
P'_{i+1} &= k(P_{i+2} - P_i) = F'(1) = C_1 + 2C_2 + 3C_3
\end{align}

The parameter k is a tension parameter that must be in the interval [0,1]. Now, \(C\) can be represented as:

\begin{align}
C_0 &= P_i \\
C_1 &= -kP_{i-1} + kP_{i+1} \\
C_2 &= 2kP_{i-1} + (k-3)P_i + (3-2k)P_{i+1} - kP_{i+2} \\
C_3 &= -kP_{i-1} + (2-k)P_i + (k-2)P_{i+1} + kP_{i+2}
\end{align}

Then we get the Cardinal matrix \(M\) and \(C\) can be represented as:

\begin{align}
\begin{pmatrix} C_0 \\ C_1 \\ C_2 \\ C_3 \end{pmatrix} =
\begin{pmatrix}
0 & 1 & 0 & 0 \\
-k & 0 & k & 0 \\
2k & k-3 & 3-2k & -k \\
-k & 2-k & k-2 & k
\end{pmatrix}
\begin{pmatrix} P_{i-1} \\ P_i \\ P_{i+1} \\ P_{i+2} \end{pmatrix}
\end{align}

Now we can derive the Cardinal basis:

\[
\eta = \left \{ -ku + 2ku^2 - ku^3, ~~~  1 + (k-3)u^2 + (2-k)u^3, ~~~  ku + (3-2k)u^2 + (k-2)u^3,~~~  -ku^2 + ku^3 \right \}
\]

Catmull-Rom spline is a special case of a Cardinal spline. Choosing tension parameter \(k = \frac 1 2\) yields the basis:

\[
\eta = \left \{ -\frac 1 2 u + u^2 - \frac 1 2 u^3, ~~~  1 + -\frac 5 2 u^2 + \frac 3 2 u^3, ~~~  \frac 1 2 u + 2u^2 + -\frac 3 2 u^3,~~~  -\frac 1 2 u^2 + \frac 1 2 u^3 \right \}
\]

 

2016-06-22 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *