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样条与输入控制点之间的松紧程度,当t为0的时候,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样条的概念,它是一种插值分段三次曲线,通过四个连续控制点来定义,并且每个曲线段的端点切线可由相邻控制点坐标计算。Cardinal样条的边界条件和张力系数t对其形状有直接影响。通过求解矩阵方程,可以得到参数三次函数式的表达式,从而构建样条曲线。
1150

被折叠的 条评论
为什么被折叠?



