第2章贝齐尔曲线和B_第1页
第2章贝齐尔曲线和B_第2页
第2章贝齐尔曲线和B_第3页
第2章贝齐尔曲线和B_第4页
第2章贝齐尔曲线和B_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章贝齐尔曲线和第二章贝齐尔曲线和B样条曲线样条曲线 随着计算机的发展,人们希望通过计算机对飞随着计算机的发展,人们希望通过计算机对飞机、船体和汽车的外形进行设计。机、船体和汽车的外形进行设计。 2020世纪世纪6060年代,人们已经研究出三次样条函数,年代,人们已经研究出三次样条函数,并将其作为描述飞机等几何行体的数学模型。并将其作为描述飞机等几何行体的数学模型。 到了到了7070年代,法国雷诺汽车公司的工程师贝齐年代,法国雷诺汽车公司的工程师贝齐尔(尔(BezierBezier)创造出一种适用于几何体外形设)创造出一种适用于几何体外形设计的新的曲线表示法。计的新的曲线表示法。 这种方法的

2、优越性在于:对于在平面上随手勾这种方法的优越性在于:对于在平面上随手勾画出的一个多边形(称为特征多边形),只要画出的一个多边形(称为特征多边形),只要把其顶点的坐标输入计算机,经过计算,绘图把其顶点的坐标输入计算机,经过计算,绘图机就会自动画出同这个多边形很相象,又十分机就会自动画出同这个多边形很相象,又十分光滑的一条曲线,这种方法称为贝齐尔光滑的一条曲线,这种方法称为贝齐尔(Bezier)(Bezier)方法。方法。 贝齐尔贝齐尔(Bezier)(Bezier)方法的实际是把复杂曲线的描方法的实际是把复杂曲线的描绘转化成简单的多边形描绘。绘转化成简单的多边形描绘。2.1 2.1 贝齐尔曲线贝

3、齐尔曲线 贝齐尔曲线的形状是通过一组多边形(也称为贝齐尔贝齐尔曲线的形状是通过一组多边形(也称为贝齐尔控制多边形)的各顶点唯一地定义出来的。控制多边形)的各顶点唯一地定义出来的。 在该多边形的各个顶点中,只有第一点和最后一点在在该多边形的各个顶点中,只有第一点和最后一点在曲线上,其余的顶点则用来定义曲线的形状。曲线上,其余的顶点则用来定义曲线的形状。 第一条边和最后一条边则表示出了曲线在起点处和终第一条边和最后一条边则表示出了曲线在起点处和终点处的切线方向。即第一条边和最后一条边分别和曲点处的切线方向。即第一条边和最后一条边分别和曲线在起点和终点处相切,曲线的形状趋向于多边形折线在起点和终点处

4、相切,曲线的形状趋向于多边形折线的形状。线的形状。 改变多边形折线的顶点位置和曲线形状的变化有着直改变多边形折线的顶点位置和曲线形状的变化有着直观的联系。观的联系。多项式次的为)(,我们称是二项式系数其中:)(将它写成假定)()()(恒等式:Bernsteinnf(t)1)t(0 (t)Bnkf( t1)t)(nkf(fBk)!-(nk!n!)( t1)tf(t)(f(t)c0,1,ft1tt1t1 n0knk,knkn0knknnkknkn0knkknkn0knkn 称为称为n n次次BernsteinBernstein多项式的基函数,贝齐多项式的基函数,贝齐尔曲线是以尔曲线是以Bernst

5、einBernstein多项式的基函数构造多项式的基函数构造而成的。而成的。knknknktttB)1( )(,其中 在 外 形 设 计 中 , 给 出 一 组 初 始 型 值 点在 外 形 设 计 中 , 给 出 一 组 初 始 型 值 点P Pk k(k(k=0,1,=0,1,n),n),将它们按顺序连接为一个多将它们按顺序连接为一个多边形,称为边形,称为控制多边形控制多边形。型值点与。型值点与BernsteinBernstein多项式的基函数的线性组合:多项式的基函数的线性组合: 称为称为n n次次贝齐尔曲线贝齐尔曲线。)(),(,010tBPtPPPBnknkknn) 10 (t多边形

6、的起点和终点。可以看出曲线通过控制时当时,那么,当如果我们规定nn0nn0knk,kn1000n0n0knk,kn100pp1)-(11n!0!n! (1)BP,1),.pp,Bn(p1tpp0)-(10n!0!n! (0)BP,0),.pp,Bn(p0t1,0!01)-1,2,.n(k )()( )1 ()()!1( !)!1( )1 ()!()!1()!1( )1 ()()1 ()!()!1()!1( )1 ()()1 ()!( !)(1,1, 1111111,tBtBnttknknknttknknnttkntktknkknnttkntktknkntBnknkknkknkknkknkknk

7、knknk两端点处的切矢情况来分析一下曲线在我们通过对基函数求导p) )()(pp)1 (- )(p(t)Bp)(p (t)Bpt),p,.,p,(pB )()()1 ()1()(1)-1,2,.n(k )()()(1n1,1, 11 -n1kk01,nn1 -n1knk,k, 00n0knk,kn10n1,1, 01,1, 1,nnknknnnnnnnnnnnknknkttBtBtntBtBntttBtnttBtBtBntB于是得到)p-n(p 0p) )()(pp)01 (- ,0)p,.,p,(pB0tp) )()(pp)1 (- t),p,.,p,(pB011n1,1, 11 -n1k

8、k01n10n1n1,1, 11 -n1kk01n10nnnknknnnknkntBtBnttBtBtn在起始点00)-(10k)!-1-(nk!1)!-(n)( 10)-(101)!-(n0!1)!-(n)( 1kt)-(1tk)!-(nk!n!)(k- 1 -nk1 -,0-n01 -, 1 -k-nk,tBtBtBnknknk时当因:)p-n(p,1)p,.,p,(pB1 tp) )()(pp)1 (- t),p,.,p,(pB1 -nnn10n1n1,1, 11 -n1kk01n10n在终点nnknknttBtBtn11)-(11k)!-1-(nk!1)!-(n)( 01)-(111)

9、!0!-(n1)!-(n)( 1kt)-(1tk)!-(nk!n!)(1)-(n- 1 -n1 -n1 -,1)-(n-n1 -n1 -, 1 -k-nk,tBtBntBnknknk时当因:说明说明,Bezier,Bezier曲线在曲线在两端点处的切矢方两端点处的切矢方向与控制多边形的向与控制多边形的第一条边和最后一第一条边和最后一条边一致的条边一致的1)t(0 tpt)p-(1t),p,(pBPPtt)-(1)t(t)Bt -1t)-(1)t(t)B1n1-nn,10101101 - 11111,10- 10100,1两点的直线段,即,是连接时当低次的贝齐尔曲线,下面我们来讨论一下较次的贝齐

10、尔曲线。可以定义一条个型值点,给定知道由贝齐尔曲线公式我们是二次参数曲线时当t),p,p,(pBy1)t(0 ptt)p-t(12pt)-(1t),p,p,(pBtt)-(1t)!22( ! 2! 2t)-(1)t(t)Bt)-(12t)-(1t)!12( ! 1! 2t)-(1)t(t)Bt)-(1t)-(1t! 2 ! 0! 2t)-(1)t(t)B2n210222102210222-222-22222,21 -211 -21211,220-200-20200,2t是三次参数曲线时当t),p,p,p,B3(p1)t(0 ptt)p-(1t 3pt)-t(13pt)-(1t),p,p,p,B

11、3(ptt)-(1t)!33( ! 3! 3t)-(1)t(t)Bt)-(13t)-(1t)!23( ! 2! 3t)-(1)t(t)Bt)-(13t)-(1t)!13( ! 1! 3t)-(1)t(t)Bt)-(1t)-(1t! 3 ! 0! 3t)-(1)t(t)B3n321033221203321033-333-33333,322-322-32322,321 -311 -31311,330-300-30300,3tt13t-2tt)-t(13t)-(1 0t0t)-(1t 31t)-t(131t)-(1 ytt)y-(1t 3yt)-t(13yt)-(1y(t)13t6t-5t 3tt)

12、-(1t 32t)-t(13t)-(1 xtt)x-(1t 3xt)-t(13xt)-(1x(t)1)t(0 ptt)p-(1t 3pt)-t(13pt)-(1t),p,p,p,B3(p3n(3,0)(1,0),(2,1),(1,1),:232332233322120323322333221203332212033210 时的贝齐尔曲线绘制过点例1)t(0 13t-2ty(t) 13t6t-5t x(t)2323计算曲线上的点计算曲线上的点t 0 0.25 0.5 0.75 1X 1 1.45 1.63 1.98 3Y 1 0.84 0.5 0.16 0绘制曲线绘制曲线P0P1P2P3绘制贝齐

13、尔曲线的算法:绘制贝齐尔曲线的算法:Input x(k),y(k) (k=0,1,2,Input x(k),y(k) (k=0,1,2,n),n)画出控制多边形画出控制多边形定义变量定义变量 m,x1(m),y1(m)m,x1(m),y1(m)For j =0 to mFor j =0 to m t=j/m, x1(j)=0, y1(j)=0 t=j/m, x1(j)=0, y1(j)=0 For k=0 to n For k=0 to n bk bk= =jc(n)jc(n)/(jc(k)/(jc(k)* *jc(n-k)jc(n-k)* *t(kt(k) )* *(1-t)(n-k)(1-

14、t)(n-k) x1(j) = x1(j) + bk x1(j) = x1(j) + bk * * x(k) x(k) y1(j) = y1(j) + bk y1(j) = y1(j) + bk * * y(k) y(k) Next k Next kNext jNext j绘制绘制(m+1)(m+1)个插值点个插值点绘出的图形绘出的图形自定义函数2.2 2.2 B B样条曲线样条曲线 B样条曲线是以B样条函数为基函数构造而成的。为了定义B样条曲线,首先给出n次截幂函数和n阶B样条函数的定义。 nknnkknnknxnxMxM01nnn)2)() 1()!1(1)(Bn)(0 x00 xx xn

15、x样条函数,即阶为称次截幂函数,即为我们称 00101111)21-(x-)21(x )21)() 1()!11 (1)(1nkkkkxxM时当 101)21-(x-)21x()(21x011)21-(x-)21x()(21x001001xMxM时当时当 000)21-(x-)21x()(21x101)21-(x-)21x()(21x21001001xMxM时当时当 21)()(,21x21x 021x 1)(111我们规定具有对称性,为了使时当所以xMxMxM 1)-(x2x-1)(x )22)() 1()!12(1)( 1)!22( ! 2! 2)( 2)!12( ! 1! 2)( 1)!

16、02( ! 0! 2)(2n201222222120kkkkxxM时当 1x x-11x 0)(000-0)( -1xx-1x100-1x)( 0 xx100-1x)( 0 x1-x-102x-1x)( 1x0 01-x2x-1)x()( 1x01-x2x-1)x()( 1x2222222xMxMxMxMxMxMxM时当时当时当时当时当时当 )23(x-)21(x3)213(x-)23(x21 )23)() 1()!13(1)( 1)!33( ! 3! 3)( 3)!23( ! 2! 3)( 3)!13( ! 1! 3)( 1)!03( ! 0! 3)( 3n22223013333332313

17、0kkkkxxM时当0)21(x 41xx)21(x)21(x21-x 21-x0)23(x 493xx)23(x)23(x23-x 23-x22222222时当时当时当时当0)23-(x 493x-x)23-(x)23-(x23x 23x0)21-(x 41x-x)21-(x)21-(x21x 21x22222222时当时当时当时当00-) 41x-3(x )41x3(x- 493xx21(x)M 23x0)493x-(x-) 41x-3(x )41x3(x- 493xx21(x)M 23x222322223时当时当0(x)M 23x 0(x)M 23-x0(x)M 23x333 49x3-

18、x21(x)M 2321) 493x(x210)00 )493x(x21(x)M 21-x23) 493x(x210-) 41x-3(x )41x3(x- 493xx21(x)M 23x212322322223时当时当时当x 23x 21 )49x3-(x2121x 43x-23x 0(x)M43-x)23(-2x21 )41x3(x-) 493x(x21 00)41x3(x- )493x(x21(x)M 21 x 21x212232222223时即时当初始型值点与初始型值点与B B样条函数的线性组合:样条函数的线性组合:)()(10kntMPtSmnkkm) 10 (t称为称为m m次次B

19、B样条曲线样条曲线。它是参数。它是参数t t具有具有m-1m-1阶连续导数阶连续导数的分段的分段m m次多项式。次多项式。2.3 B2.3 B样条曲线样条曲线 当m 1时,一次B样条曲线 S1(t)是连接Pi (i=0,1,,n)的折线段(即初始型值点的控制多边形)。1 -11 0)()()(2201kntkntkntkntMkntMPtSnkk) 10(t11-uk-Lu 11uk-Lu 1k-Lu,1LkL,k-12u)2(L-Luk-Lu2,Lk ,1Lk11u) 1(L-Luk-Lu1,-Lk,Lk 1u0 k,-Luk-nt,nL)(ut(t)sn1)(LtnL,1-n0,1,.,L

20、,1LkLk时当时当时当从而有令的表达式时分析可取事实上)(p)1 (p)11 (p)1 (p 1)-u(pu)(p )Lu()( )nL)(u()(u)(0,)x(1x )x(1LL1LL21L2L20201122uuuuMMkMPkntMPStSMMnkknkk于是时,的局部非零性,即当由于的折线段。是连接则的直线段,令是连接时,即当n)0,1,.,(iP(t)s1,t0 1,-n0,1,.,LP,P(t)s/ ) 1(t/Li11LL1nLn 当m=2时,二次B样条曲线 S2(t)是以型值点Pi (i=0,1,,n)为控制多边形的光滑曲线。 )()(302kntMPtSnkk) 10(t

21、事实上,可取L0,1,n-2分析(L+1/2)/n t(L+3/2)/n时S2(t)的表达式。令t=(u+L+1/2)/n,则有nt-k=u+L+1/2-k,(u1)。当kL+2时 kL+3,u+L+1/2-ku+L+1/2-(L+3)=u-5/2-3/2。由于M(x)的局部非零性,即当|x|3/2时,M3(x)。于是, u2149|23|3)23(21)23(uM23|23|2121u-u43)21()21(uM21|21|21u-u2149|21|3)21(21)21(uM232121 1u0)23-(uMp)21-(uMp)21(uMp )21()/ )21()(22322322332L

22、31L3L3022uuuuuuuukLuMPnLuSutSnkn)(21)()2(2111212LLLLLLLppppupppu22L21L2L32L31L3L2up21)21u-u(p)21u-u21(p)23-(uMp)21-(uMp)21(uMp)(utS 可以看出,可以看出,S S在子区间在子区间u1u1上仅依赖于上仅依赖于位矢位矢P PL L,P PL+L+,P PL+2L+2。即改变。即改变P PL L,P PL+L+,P PL+2L+2仅仅影响影响B B样条曲线的局部形状,这是样条曲线的局部形状,这是B B样条曲线样条曲线的重要特征。的重要特征。)(21)( )2(21(u)S1

23、12122LLLLLLLppppupppu由式)(21 )(21)()2(21(1)S)(21(0)S)(21)( )2(21(u)S211121212112122LLLLLLLLLLLLLLLLLLpppppppppppppppupppu由)(1)S(0)S21(2121(1)S41(0)S41 2181818181 814381 81)212141(-)2121-81( )(21)(21 )2(4121)21(S1221221211212111212LLLLLLLLLLLLLLLLLLLLpppppppppppppppppppp(0)S-(1)S 212121212121 )()2(21)

24、21(S )()2(1)S(0)S )()2(u)S2211221211212111212222LLLLLLLLLLLLLLLLLLLLLLLLLpppppppppppppppppppppppppu样条曲线的绘制过点例B(3,0)(1,0),(2,1),(1,1),:)(21)()2(21)(112122LLLLLLLppppupppuuS二次二次B B样条曲线样条曲线S2(u)S2(u)可以分可以分n-2n-2段绘出,每段曲线段绘出,每段曲线上任意点的坐标为上任意点的坐标为: :)(21)()2(21) u (11212lllllllxxxxuxxxux)(21)()2(21) u (112

25、12lllllllyyyyuyyyuy121-1)(1211)u(-10)2-(121 )yy(21)yy()yy2y(21) u( y23u-2)(1212)u(-11)4-(121 )(21)()2(21) u( B (1,0) (2,1), (1,1), , 022112122211212uuuuuuxxxxuxxxuxlllllllllllllll样条曲线的过点时计算曲线上的点计算曲线上的点u 0 0.25 0.5 0.75 1X 1.5 1.69 1.75 1.69 1.5Y 1 0.97 0.875 0.72 0.5121-) u( y23u-) u(22uuxL=0L=0时,过点

26、时,过点(1,1),(2,1),(1,0)(1,1),(2,1),(1,0)的曲线方程的曲线方程绘制曲线绘制曲线P0P1P2P321u210)(1210)u(-10)0-(121 )yy(21)yy()yy2y(21) u( y23u231)(2211)u(-2) 32-(221 )(21)()2(21) u( B (3,0), (1,0) (2,1), , 122112122211212uuuuuuxxxxuxxxuxlllllllllllllll样条曲线的过点时计算曲线上的点计算曲线上的点u 0 0.25 0.5 0.75 1X 1.5 1.34 1.38 1.59 2Y 0.5 0.28

27、 0.125 0.03 021u21) u( y23u23) u(22uuxL=1L=1时,过点时,过点(2,1),(1,0),(3,0)(2,1),(1,0),(3,0)的曲线方程的曲线方程绘制曲线绘制曲线P0P1P2P3绘制二次绘制二次B B样条曲线的算法:样条曲线的算法:Input x(k),y(k) (k=0,1,2,n)画出控制多边形画出控制多边形For l=0 to n-2for i=0 to m u= i /m x1(i)=u2(Xl2Xl+1+Xl+2)/2+u(- Xl)+Xl+1)+(Xl+Xl+1)/2 Y1(i)=u2(Yl2Yl+1+Yl+2)/2+u(-Yl)+Yl

28、+1)+(Yl+Yl+1)/2Next I绘制绘制(m+1)个插值点个插值点绘出的图形绘出的图形Next l2.4 2.4 自由曲线自由曲线v设计自由曲线要求出现直线段。只要适当选取设计自由曲线要求出现直线段。只要适当选取P Pl l,P Pl+1l+1,P Pl+2l+2并使它们共线即可。并使它们共线即可。v设计的曲线要求出现尖点,只需要在出现尖点设计的曲线要求出现尖点,只需要在出现尖点处将型值点的序号重复编号。处将型值点的序号重复编号。一、设计自由曲线要求出现直线段。只要适当选一、设计自由曲线要求出现直线段。只要适当选取取P Pl l,P Pl+1l+1,P Pl+2l+2并使它们共线即可。并使它们共线即可。2L2L222L1L11L11112L1LL1LL1LL2L1LL22(u)PP (u)S PP P1 P,P,P)P(P21)Pu(-P)P2P-(P2uSBn)23(Ltn)21(L将其带入上式有使,数共线,故存在这样的正由于样条曲线二次时,这是因为当2L2L22L1112L11122L1L1L2L1L1L2L2L1L1L21LL1LL2L1LL22(u)PP (u) P21u)2-(12u )P(1211)-u()2-(12u )PP(P21)PP(u(-P )P)PP2(-(P2u )P(P21)Pu(-P)P2P-(P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论