三次周期B样条曲线的算法
0 £ u<1和四个控制点p0,p1,p2和p3. 设P(u)是一个三次周期B样条,满足条件:
P(0) = (p0 + 4p1 + p2)/6,
P(1) = (p1 + 4p2 + p3)/6,
P¢(0) = (p2 – p0)/2,
P¢(1) = (p3 – p1)/2.
假设P(u) = (u3 u2 u 1)MB(p0 p1 p2 p3)T,MB是变换矩阵。
那么,P¢(u) = (3u2 2u 1 0)MB(p0 p1 p2 p3)T
把u = 0,1分别代入上式,并利用前面的条件,得到
P(u) = p0(1-u)3/6 + p1(3u3-6u2+4)/6+ p2(-3u3+3u2+3u+1)/6 +p3u3/6
= p0B0,3(u) + p1B1,3(u) + p2B2,3(u) + p3B3,3(u)
三次B样条的性质
• C2连续性
记 Pk(u)为对应于控制点pk, pk+1,pk+2 和pk+3 .
Pk(1) = (pk + 4pk+1 + pk+2)/6 = Pk+1(0) ,这是连续性
Pk¢(1) = ½ (pk+3 – pk+1) = Pk+1¢(0),这是C1连续性
Pk¢¢(1) = pk+1 -2pk+2 +pk+3 = Pk+1¢¢(0),这是C2连续性
• 局部性:改变一个控制点最多改变四个曲线段.
局部性:改变一个控制点最多改变四个曲线段.
• 扩展性:增加一个控制点,只增加一个曲线段.
• 当B样条的节点是p0,p1,…,pn时,增加节点p-1和pn+1,使得 p-1p0 = p0p1和pn-1pn=pnpn+1
即p-1 + p1 = 2p0 和 pn-1 + pn+1 = 2pn。那么B样条以p0 为起点且切于p0p1,以pn 为终点且切于pn-1pn
事实上,增加了P-1(u)和Pn-2(u).
P0(0) = P-1(1) = (p-1+4p0+p1)/6 = p0,
P0¢(0) = P-1¢(1) = ½ (p1 – p-1) = (p1 – p0)
设P(u)是一个三次周期B样条,满足条件:
P(0) = (p0 + 4p1 + p2)/6,
P(1) = (p1 + 4p2 + p3)/6,
P¢(0) = (p2 – p0)/2,
P¢(1) = (p3 – p1)/2.
假设P(u) = (u3 u2 u 1)MB(p0 p1 p2 p3)T,MB是变换矩阵。
那么,P¢(u) = (3u2 2u 1 0)MB(p0 p1 p2 p3)T
把u = 0,1分别代入上式,并利用前面的条件,得到
P(u) = p0(1-u)3/6 + p1(3u3-6u2+4)/6+ p2(-3u3+3u2+3u+1)/6 +p3u3/6
= p0B0,3(u) + p1B1,3(u) + p2B2,3(u) + p3B3,3(u)
三次B样条的性质
• C2连续性
记 Pk(u)为对应于控制点pk, pk+1,pk+2 和pk+3 .
Pk(1) = (pk + 4pk+1 + pk+2)/6 = Pk+1(0) ,这是连续性
Pk¢(1) = ½ (pk+3 – pk+1) = Pk+1¢(0),这是C1连续性
Pk¢¢(1) = pk+1 -2pk+2 +pk+3 = Pk+1¢¢(0),这是C2连续性
• 局部性:改变一个控制点最多改变四个曲线段.
局部性:改变一个控制点最多改变四个曲线段.
• 扩展性:增加一个控制点,只增加一个曲线段.
• 当B样条的节点是p0,p1,…,pn时,增加节点p-1和pn+1,使得 p-1p0 = p0p1和pn-1pn=pnpn+1
即p-1 + p1 = 2p0 和 pn-1 + pn+1 = 2pn。那么B样条以p0 为起点且切于p0p1,以pn 为终点且切于pn-1pn
事实上,增加了P-1(u)和Pn-2(u).
P0(0) = P-1(1) = (p-1+4p0+p1)/6 = p0,
P0¢(0) = P-1¢(1) = ½ (p1 – p-1) = (p1 – p0)
从B样条的插值点反求控制点
以三次周期B样条P(u)为例,每段三次B样条需要四个控制点,该样条的首尾两点均不是控制点。设有N个插值点{Qj:j=1,2,…,N}和N+2个控制点{pj: j=0,1,…,N+1}。三次B样条一般不经过控制点。第j段的三次周期B样条Pj(u)满足:
Pj(0) = (pj-1 + 4pj + pj+1)/6 = Qj, j=1,2,…,N.
对于点的每个坐标来说,共有N个方程,但是有N+2个未知数。需要补充两个边界条件。
(1)末两点经过Q1和QN的非周期三次B样条曲线。
p0 = Q1, pN+1 = QN.
(2)封闭的周期三次B样条曲线。 P0=PN, P1=PN+1。
(3)端点有二重控制点P0=P1和PN+1=PN的三次B样条曲线