采用Cardinal法构造插枝分段三次样条曲线 : 原理篇
       Cardinal样条是插值分段三次曲线,并且每条曲线段的终点位置均指定切线.不过Cardinal样条不用给出终点的切线值.Cardinal样条中,一个控制点的斜率可以由两个相邻控制点的坐标进行计算.
       一个Cardinal样条可由4个连续控制点完全确定,中间2个控制点是曲线段端点,其他两个点用于计算曲线段端点斜率.
       4个连续控制点为Pk-1,Pk,Pk+1,Pk+2,P(u)是控制点Pk和Pk+1之间的参数三次函数式(u为参数), 则从Pk-1到Pk+2间的4个点用于建立Cardinal样条的边界条件为:
       P(0) = Pk
       P(1) =  Pk+1
       P'(0) = (1 - t) * (Pk+1 - Pk-1)                                     (1)
       P'(1) = (1 - t) * (Pk+2 - Pk)
 
       也就是说,控制点Pk和Pk+1处的斜率分别与弦Pk+1Pk-1和Pk+2Pk成正比.
       t: 参数t为张力(tension)系数,因为t控制Cardinal样条与输入控制点之间的松紧程度,t0的时候,Cardinal样条又称为Catmull-Rom样条或Overhauser样条.
 
       解上面的4个方程,并将之转换成矩阵形式,如下:
                                 (2)
                           
其中, Cardinal矩阵是:
                                 (3)
               其中    s = (1 - t) / 2        
 
将矩阵方程(2)展开成多项式形式,可以得到
 
       P(u) = Pk-1(-su3+ 2su2 - su) + Pk[(2 - s)u3 + (s - 3)u2 + 1] + Pk+1[(s - 2)u3 + (3 – 2s)u2 + su] + Pk+2(su3 - su3)
阅读更多
想对作者说点什么? 我来说一句

Cardinal样条曲线Qt代码

2014年10月15日 8KB 下载

Qt实现cardinal样条曲线例子

2017年10月23日 41KB 下载

没有更多推荐了,返回首页

不良信息举报

采用Cardinal法构造插枝分段三次样条曲线 : 原理篇

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭