Hermite Splines

  The hermite form is sometimes called a cubic spline.

Given : Points P1, P4 Tangent vectors R1, R4
Look at x component: x(t) = axt^3 + bxt^2 + cxt + dx

So want to solve for ax, bx, cx, dx using the four continuity conditions, i.e. for two curve segments there is C0 and C1 continuity.

So we have: x(0) = P1x, x(1) = P4x , x'(0) = R1x, x'(1) = R4x

Now we can rewrite x(t) as:

 x(t) = [t^3 t^2 t 1]  |ax|
                       |bx|
                       |cx|
                       |dx|
 = TCx

Now the 4 conditons can be expressed as:
for t = 0        x(0) = P1x = [ 0 0 0 1 ] Cx
for t = 1        x(1) = P4x = [ 1 1 1 1 ] Cx

For the tangent expressions we differentiate the expression for x (with respect to t)and get:

x'(t) = [ 3t^2 2t 1 0] Cx
x'(0) = R1x = [ 0 0 1 0] Cx
x'(1) = R4x = [ 3 2 1 0] Cx
We can gather the 4 conditions into one matrix equation:
|P1|    |0 0 0 1|
|P4| =  |1 1 1 1| Cx
|R1|    |0 0 1 0|
|R4|    |3 2 1 0|

We solve for Cx by inverting the matrix and get:
(with MH = Hermite Matrix GH = Hermite Geometry vector)

     | 2 -2  1  1 | |P1| 
Cx = |-3  3 -2 -1 | |P4| = MH * GHx
     | 0  0  1  0 | |R1| 
     | 1  0  0  0 | |R4| 

Therefore:

x (t) = TMH GHx 
y (t) = TMH GHy  (By Symmetry)
z (t) = TMH GHz 

or P (t) = TMH * GH

If we multiply out terms, then for x(t) we get:

TMH = [(2t^3 - 3t^2 +1) (-2t^3 + 3t^2) (t^3 - 2t^2 + t) (t^3 - t^2)]

Then post multiply by GHx and get: 
x(t) = TMHGHx = P1x(2t^3 - 3t^2 + 1) + P4x(-2t^3 + 3t^2) + R1x(t^3 - 2t^2 + t) + R4X(t^3 - t^2) 
with similar expressions for y, z

The 4 functions of t are sometimes called "blending functions".  The first two functions blend P1, P4 and the second two blend R1, R4.


Copyrightę 1998 by Pat Hanrahan 

So procedure:
1.Enter number of points to be computed between "Data Points."
2.Compute table of blending functions.
3.Enter / Compute "Data Points" and tangent vectors then use above equations for each curve segment.

Hermite method is good for fitting existing surface but not for interactively creating one since it is difficult to enter R's and know what curves will look like.

A program illustrating Hermite Splines.


Splines main page
HyperGraph Table of Contents.
HyperGraph Home page.

Last changed September 02, 1999, G. Scott Owen, owen@siggraph.org