首页 > 代码库 > Catmull-Rom Spline
Catmull-Rom Spline
【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
Catmull-Rom Spline
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。