b样条曲线
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
讨论:
( n − 1 )! B i −1,n −1 ( t ) = ⋅ t i − 1 ⋅ (1 − t ) n + 1 − i ( i − 1 )! ⋅ ( n − i )! ( n − 1 )! B i ,n −1 ( t ) = ⋅ t i ⋅ (1 − t ) n − 1 − i i !⋅ ( n − 1 − i )!
[
3
t
2
−1 3 − 3 3 −6 3 t 1 ⋅ − 3 3 0 1 0 0
]
1 P0 P 0 1 ⋅ 0 P2 0 P3
***
二、B样条曲线 曲线到B样条曲线 1.从 Bezier 曲线到B样条曲线 曲线在应用中的不足: (1) Bezier 曲线在应用中的不足:
B样条曲线和曲面 3.1.2 B样条曲线和曲面
在我们工程中应用的拟合曲线,一般 地说可以分为两种类型:一种是最终 生成的曲线通过所有的给定型值点, 比如抛物样条曲线和三次参数样条曲 线等,这样的曲线适用于插值放样; 另一种曲线是,它的最终结果并不一 定通过给定的型值点,而只是比较好 地接近这些点,这类曲线(或曲面) 比较适合于外形设计。
P1
P2 P1
P2
P0 P1
P3
P0
P3
P3
P0
P2
1.Bezier曲线的数学表达式 .Bezier曲线的数学表达式 Bezier曲线是由多项式混合函数推导 出来的,通常 n+1 个顶点定义一个 n 次多项式。其数学表达式为:
P (t ) =
∑
n
i=0
Pi B i , n ( t )
(0 ≤ t ≤ 1)
P P 在数学上,可以很容易将参数曲线段 P P 拓张为参数曲面片。因为无论是前面 P P P P 的 Bezier 曲线还是B样条曲线,它 P P v P v P P P 们都是由特征多边形控制的。而曲面 P P 是由两个方向(比如 P 和 v)的特征 u u u P 多边形来决定,这两个方向的特征多 双二次Bezier曲面和B样条曲面 边形构成特征网格。
法国的 Bezier 为此提出了一种新的 参数曲线表示方法,因此称为Bezier 曲线。后来又经过 Gordon、Forrest 和 Riesenfeld等人的拓广、发展, 提出了B样条曲线。 这两种曲线都因能较好地适用于 外形设计的特殊要求而获得了广泛的 应用。
一、Bezier曲线 Bezier曲线 Bezier曲线的形状是通过一组多边折 线(特征多边形)的各顶点唯一地定 义出来的。在这组顶点中: (1) 只有第一个顶点和最后一个顶点 在曲线上; (2) 其余的顶点则用于定义曲线的导 数、阶次和形状; (3) 第一条边和最后一条边则表示了 曲线在两端点处的切线方向。
B: P1,P2,P3 P1
i=1 P1,2(t)
P3
n=2,二次B样条曲线 m+n+1个顶点,三 点一段,共m+1段。
i=0 P0,2(t)
P4 P2
P0 B: P0,P1,P2
二次B 二次B样条曲线的性质
先对 P(t)求导得:
P ′ ( t ) = [t 1 1 ] − 1
− 2 1
下面我们通过对基函数求导,来分析 两端切矢的情况。
B (t ) = n[ Bi −1, n −1 (t ) − Bi , n −1 (t )]
' i ,n
得:
P ' ( t ) = n ∑ P i [ B i − 1 , n − 1 ( t ) − B i , n − 1 ( t )]
i=0 n −1
因为在外形设计中(比如汽车、船舶), 初始给出的数据点往往并不精确;并 且有的地方在外观上考虑是主要的, 因为不是功能的要求,所以为了美观 而宁可放弃个别数据点。因此不须最 终生成的曲线都通过这些数据点。 另一方面,考虑到在进行外形设计时 应易于实时局部修改,反映直观,以 便于设计者交互操作。第一类曲线在 这方面就不能适应。
2.B 2.B样条曲线的数学表达式 B样条曲线的数学表达式为:
Pi , n ( t ) =
∑
n
k =0
Pi + k ⋅ F k , n ( t )
在上式中,0 ≤ t ≤ 1; i= 0, 1, 2, …, m 所以可以看出:B样条曲线是分段定 义的。如果给定 m+n+1 个顶点 Pi ( i= 0, 1, 2,…, m+n),则可定义 m+1 段 n 次的参数曲线。
B样条曲线是一种非常灵活的曲线, 曲线的局部形状受相应顶点的控制很 直观。这些顶点控制技术如果运用得 好,可以使整个B样条曲线在某些部 位满足一些特殊的技术要求。如: 可以在曲线中构造一段直线; 使曲线与特征多边形相切; 使曲线通过指定点; 指定曲线的端点; 指定曲线端点的约束条件。
三、B样条曲面
B0 1 B1 0 B2
与以上这些式子所表达的性质相符的 曲线是何种形状:(见下图)
B1 P(1/2) P(0) P'(1/2) P(1)
M
B0
是什么曲线? 与Bezier曲线有 何差别?
B2
结论:分段二次B样条曲线是一条抛 物线;有n个顶点定义的二次B样条曲 线,其实质上是n-2段抛物线(相邻三 点定义)的连接,并在接点处达到一 阶连续。(见下图)
P3 P1
P4 P2 P0
4.三次B样条曲线 三次B 分段三次B样条曲线由相邻四个顶点 定义,其表达式为: P( t )=F0,3(t)•B0+F1,3(t)•B1+F2,3(t)•B2 +F3,3(t)•B3 (0[ t [ [ [1) 可见,由 n 个顶点定义的完整的三次 B样条曲线是由 n-3 段分段曲线连接 而成的。很容易证明,三次B样条曲 线在连接处达到二阶连续。 ***
有了基函数,因此可写出二次B样条 曲线的分段表达式为:
Pi (t ) = F0, 2 (t ) ⋅ Pi + F1, 2 (t ) ⋅ Pi +1 + F2, 2 (t ) ⋅ Pi + 2
( i= 0,1,2,…,m ) m+1段
写成一般的矩阵形式为: 写成一般的矩阵形式为:
P(t ) = ∑ Fk , 2 (t ) ⋅ Bk = t 2
t=0: i=0: Bi-1,n-1(t)=0; Bi,n-1(t)=1。 i=1: Bi-1,n-1(t)=1; Bi,n-1(t)=0。 i〈2: Bi-1,n-1(t)=0; Bi,n-1(t)=0。
(均出现 0 的非 0 次幂)
∴t=0
P (0) = P (t = 0) = n( P − P0 ) 1
12 12 22 22 02 02 11 21 11 21 01 01 10 10 20 20 00 00
1.Bezier 曲面
然后分别将 t=0,t=0.5,t=1 代入 P(t) 和 P’(t),可得: P(0)=1/2(B0+B1), P(1)=1/2(B1+B2); P’(0)=B1-B0, P’(1)=B2-B1; P(1/2)=1/2{1/2[P(0)+P(1)]+B1} P’(1/2)=1/2(B2-B0)=P(1)- P(0)
P(1/2) P'(1/2) P0 Pm P2 P1
二次 Bezier 曲 线是一条抛物线
(2) 四个顶点 P0、P1、P2、P3 可 定义一条三次 Bezier 曲线:
P(t) = (1 − t) P0 + 3t(1 − t )P + 3t (1 − t)P2 + t P3 1
3 2 2 3
=t
2! B 0,2 (t ) = ⋅ t 0 ⋅ (1 − t ) 2 − 0 = (1 − t ) 2 0 !⋅ 2 ! 2! B 1, 2 ( t ) = ⋅ t 1 ⋅ (1 − t ) 2 − 1 = 2 t ⋅ (1 − t ) 1!⋅ 1! 2! 2 2−2 2 B 2,2 (t ) = ⋅ t ⋅ (1 − t ) = t 2 !⋅ 0 !
' '
同理可得,当 t=1 时
P (1) = n ( Pn − Pn − 1 )
'
这两个式子说明:Bezier曲线在两端 点处的切矢方向与特征多边形的第一 条边和最后一条边相一致。
2.二次和三次Bezier曲线 二次和三次Bezier曲线 Bezier (1) 三个顶点:P0,P1,P2 可定义一条 二次(n=2) Bezier曲线: 其相应的混合函数为:
所以,根据式:
P (t ) =
∑
n
i=0
Pi B i , n ( t )
二次 Bezier 曲线的表达形式为: P(t)=(1-t)2⋅P0+2t(1-t)⋅P1+t 2 ⋅P2 (0≤t ≤ 1)
根据 Bezier 曲线的总体性质,可讨 论二次 Bezier 曲线的性质: P(t)=(1-t)2⋅P0+2t(1-t)⋅P1+t2 ⋅P2 P’(t)=2(t-1)⋅P0+2(1-2t)⋅P1+2t⋅P2 P(1/2)=1/2⋅[P1+1/2⋅(P0+P2)] PΧ(0)=2(P1-P0) PΧ(1)=2(P2-P1) PΧ(1/2)=P2-P0
缺乏灵活性 一旦确定了特征多 边形的顶点数(m个),也就决定了曲 线的阶次(m-1次),无法更改; 控制性差 当顶点数较多时,曲 线的阶次将较高,此时,特征多边形 对曲线形状的控制将明显减弱;
不易修改 由曲线的混合函数可 看出,其值在开区间 ( 0 , 1 ) 内均不为 wk.baidu.com。因此,所定义之曲线在 ( 0 < t < 1) 的区间内的任何一点均要受到全部顶 点的影响,这使得对曲线进行局部修 改成为不可能。
n! 0 n P ( 0) = ⋅ 0 ⋅ (1 − 0) ⋅ P0 = P0 1 ⋅ n!
t=1: i=n ,Bi,n(t)=1 i≠n ,Bi,n(t)=0 ∴P(1)=Pn
n! n 0 P(1) = ⋅ 1 ⋅ (1 − 1) ⋅ Pn = Pn n!⋅1 ⋅1
所以说,“只有第一个顶点和最后一个 顶点在曲线上”。即 Bezier曲线只通过多边折线的起点 和终点。
连接全部曲线段所组成的整条曲线称 为 n 次B样条曲线。依次用线段连接 点 Pi+k (k=0,1,…,n)所组成的多边折 线称为B样条曲线在第i段的B特征多 边形。
3.二次B样条曲线 二次B 在二次B样条曲线中,n=2,k=0,1,2 故其基函数形式为:
1 2 j j 2 F0 ,2 (t ) = ∑0 ( − 1) ⋅ C 3 ⋅ ( t + 2 − j ) 2! j = 1 3! 3! 3! 2 1 2 2 2 ( t + 1) + = [ (t + 2 ) − t ] = ( t − 1) 2 3! 2! 2! 2 1 2 F1 , 2 ( t ) = ( − 2 t + 2 t + 1) 2 1 2 F 2 ,2 (t ) = t 2
k =0 2
[
1 − 2 1 B0 1 t 1 − 2 2 0 B1 2 1 1 0 B2
]
式中,Bk为分段曲线的B特征多边形 的顶点:B0,B1,B2。对于第i段曲线的 Bk 即为:Pi,Pi+1,Pi+2 连续的三个顶 点。 (见下图)
式中:Pi:为各顶点的位置向量 Bi,n(t):为伯恩斯坦基函数
伯恩斯坦基函数的表达式为:
B i ,n n! (t ) = ⋅ t i ⋅ (1 − t ) n − i i !⋅ ( n − i )!
假如规定:0°=1,0!=1,则 t=0: i=0 ,Bi,n(t)=1 i≠0 ,Bi,n(t)=0 ∴P(0)=P0
在以上表达式中: F k,n ( t ) 为 n 次B样条基函数,也称B 样条分段混合函数。其表达式为:
1 j j n Fk , n ( t ) = ∑ ( − 1) ⋅ C n +1 ⋅ (t + n − k − j ) n! j = 0
n−k
式中: 0 ≤ t ≤1 k = 0, 1, 2, …, n
(而在外形设计中,局部修改是随时要进行的)
为了克服 Bezier 曲线存在的问题, Gordon 等人拓展了 Bezier曲线,就 外形设计的需求出发,希望新的曲线 要: 易于进行局部修改; 更逼近特征多边形; 是低阶次曲线。 于是,用 n次B样条基函数替换了伯 恩斯坦基函数,构造了称之为B样条 曲线的新型曲线。