标签:
【Catmull-Rom Spline】
Catmull-Rom算法保证2点:
1、每点Pi的1阶层数等于Pi+1 - Pi-1。
2、穿过所有Pi点。
其中特点2是与贝塞尔曲线的最大区别。正因为这样的特性,使得Catmull-Rom算法适于用作轨迹线算法。
点Pi处的切线记作:τ (pi+1 − pi−1)。此算法的转换矩阵如下:
接下来看看此算法是如何推导出来的。
首先,此算法工作需要四个点,P0(Pi-2)、P1(Pi-1)、P2(Pi)、P3(Pi+1)。特性1)、2)可用下图来描述。
τ用于影响扭曲程度。
作为一个立方插值函数,抽象原型如下,我们需要做的就是求出下式中的C0、C1、C2、C3。
1)
根据下图的抽象,我们可以得出右图的四个等式:
将参数0、1代入1)式即可得:
将C0、C1代入其它两式后,可得下式:
最终可解得:
所以最终结果就是:
参考:http://www.cs.cmu.edu/~462/projects/assn2/assn2/catmullRom.pdf
标签:
原文地址:http://www.cnblogs.com/tekkaman/p/4191248.html