I think that the paper by Sigg and Hadwiger is correct.
Catmull-Rom polynomial p(t)
can be written as
p(t) = 0.5 [ w0(t) * p0 + w1(t) * p1 + w2(t) * p2 + w3(t) * p3]
where
w0(t) = -t + 2*t^2 - t^3;
w1(t) = 2 - 5*t^2 + 3*t^3;
w2(t) = t + 4*t^2 - 3*t^3;
w3(t) = -t^2 + t^3;
and p0
, p1
, p2
, p3
are the sampled function values.
For the B-spline, you group together the first two terms, namely w0(t) * p0
and w1(t) * p1
and the second two terms, namely w2(t) * p2
and w3(t) * p3
. For the Catmull-Rom spline, you group together w0(t) * p0
and w3(t) * p3
and w1(t) * p1
and w2(t) * p2
. It is easy to verify, even by a Matlab plot, that the condition b/(a+b)
is satisfied for this choice. So, the idea can be used also in Catmull-Rom interpolation. However, for the Catmull-Rom case, it seems to me that there is no possible extension to the last step, since neither (w0(t) + w3(t))/(w0(t) + w1(t) + w2(t) + w3(t))
nor (w1(t) + w2(t))/(w0(t) + w1(t) + w2(t) + w3(t))
meet the condition you specified.