Some Additional Comments on Cubic Curve Interpolation
- Zorin at al use the following simple interpolant
along the unconnected edges of surfaces:
If there is a sequence of Vertices A, B, C, D, ...
and we are looking for the new point X near the middle of the edge between B and C,
then the following linear formula is used:
X = 9/16 *B + 9/16 *C - 1/16*A - 1/16 *D
-
This formula emerges from taking a simple cubic polynomial:
y= a * u^3 + b * u^2 + c * u + d
and sampling it at four regularly spaced time/knot intervals:
A: t,
B: t+s,
C: t+2s,
D: t+3s
-
By substituting these knot values for u,
and then weighting each term with the above weights and multiplying out,
one obtains the resulting expression:
Y= a *( t + 1.5s )^3 + b *( t + 1.5s )^2 + c *( t + 1.5s ) + d
which is just what we were looking for.
- Remember circle splines and the many different ways one can blend between two arcs
(by position, by angle; linearly weighted or trigonometrically weighted).
A circle is defined by only 3 points and only rarely fits through four consecutive points.
Thus we may fit one circle to the left side through points A, B, and C,
and another one on the right side through B, C, and D.
These would both suggest different placements for the new interpolated point;
and one can then average between the two suggestions
and pick a new point in the middle between them.
- Now consider what would happen, if we used instead an affinely invariant quadratic interpolant
-- first one through the points A, B, C,
-- and then a second one through B, C, D,
and let those each suggest a placement for the new middle point ?
And then we could average between those two suggestions ...
-
Well here is what happens:
We obtain the following two suggested new points, P and Q:
P = 6/8 * B = 3/8 * C - 1/8 * A
Q = 6/8 * C = 3/8 * B - 1/8 * D
And then if we average between those two, we get the same as above:
X = 9/16 *B + 9/16 *C - 1/16*A - 1/16 *D
Isn't that nice !