版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、参数曲线与曲面(二)B-样条曲线回想一下,设计一条曲线,我们可以通过Bezier控制多边形给出大致轮廓,再通过调整控制顶点来调整曲线。如果是有理Bezier曲线,还可以通过调整权因子来调整曲线。对设计者来说,确实方便。但是,Bezier曲线有两个缺点:z 次数取决于Bezier控制顶点的个数,曲线次数太高。 z 整体性。牵一发而动全身,太敏感。这正是我们引进B样条曲线的原因。具体做法是,将Bezier曲线的Bernstein基换为B样条基。B样条曲线是NURBS的基础,而NURBS是CAGD中的核心技术。三次样条曲线 预备知识:三次样条曲线的定义定义1. 设区间 a,b 分割为列条件之向量函数
2、。1a=t0t1 tn=b, (t)是满足下i 每个小区间 ti , t i+1, i=0,1,n-1 上,t) 是 t 的3次向量多项式。ii则 (t) (t) C2a,b. 即(t)有直至 2阶的连续导向量。 为 a, b 上关于分划 a=t0t1 tn=b 的 3 次参数样条曲线。 从样条曲线的观点导出三次等距B样条 设0,1,m为空间任 m+1 个点向量,b0b1bm为特征多边形,顺次取4 个顶点ii+1i+2i+3,(i=0,1,2,Lm3)作三次曲线段:pi,3(t)=Fj,3(t)bi+j(0t1)j=03 (1)这里Fj,3(t)为待定基函数 (调配函数). 这 m-2 段曲线
3、要求: k)pi(,k3)(t)|t=1=pi(+1,3(t)|t=0k=0,1,2.i=0,1,L,m4 i=i+1=i+3时,it)=i. 我们由,推导Fj,3(t)。由有所以2j=03i+j)F(1)=i+j+1Fj(,ki=0,1,2,m4 3(0)(k)j,3j=03)(k)(k)F(1)i+Fj(,ki=0,1,2,m4 3(1)Fj1,3(0i+jF3,3(0)i+4=0(k)0,3j=1由i之任意性有:(k)(a)F3,3(0)=0F(k)=F(k)j+1,3(1j,3(0)j=0,1,2;k=0,1,2F(k)0,3(1)=0由有(b)3Fj,3(t)=1j=0由(a),按幂
4、级数展开有:F3,3(t)=F3,3(0)+F3,3(0)t+12F213,3(0)t+6F3,333(0)t=d3t其中d3待定。又由于d3F(k)2,3(0)=F(k)=(d3(k)3,3(1)3t)|t=1=3d36d3我们有F2,3(t)=d3+3d13t+26d133t2+6F2,3(0)t=d33(1+t)+d2t3其中d2待定。类似有F1,3(t)=d3(2+t)3+d2(1+t)3+d31tF31,3(t)=d3(3+t)+d2(2+t)+d1(1+t)3+d30tk=0k=1k=2其中d1,d0待定。由(b), 既然Fj,3(t)1,将Fj,3(t)1写成幂级数形式,各项系数
5、j=0j=033必为0。故有(33+23+1)d3+(23+1)d2+d1=1222(3+2+1)d3+(2+1)d2+d1=0 (3+2+1)d3+(2+1)d2+d1=04d+3d+2d+d=02103也即361464910d01510d10 =310d20321d30解此方程组得:(d0,d1,d2,d3)=(4,6,4,1)于是,求得Fj,3(t)如下:1(1t)361F2,3(t)=(1+3t+3t23t3)6F0,3(t)=1(46t2+3t3)6 13F3,3(t)=t6F1,3(t)=16不难发现,这样推导得到的F0,3(t),F1,3(t),F2,3(t),F3,3(t)恰好
6、为关于分划 0 1 2 3 n 的三次 B样条基 4N3,4(t),N2,4(t),N1,4(t),N0,4(t)在 0,1 上的表示式。所以 (1) 式即为等距三次B样条曲线。另外,还可得到等距三次B样条曲线的矩阵表示:133363t1)330141bi10bi+1 0bi+20i+3 Pi(t)=(t3t216B样条基函数B样条基函数是样条函数空间中具有最小支承的一组基,也称为基本样条(Basic spline), B样条基函数有多种定义形式,例如有积分、差分、卷积、截断幂、递推形式等,理论上较多采用截断幂函数的差商定义,但实际工程计算则更多采用de Boor-Cox递推公式定义B样条基函
7、数,这样不仅便于计算分析基函数的性质,而且也简明直观,具有明显的几何特征。在下面的叙述中,通常不分参数记号u和t之间的差别。定义3.1 设U=u0L,um是单调递增的实数序列,即uiui+1(i=0,1,L,m1),ui称为节点(Knot),U称为节点矢量,第i段p次(degree)(或p+1阶(order)) B样条基函数,记为Ni,p(u), 定义如下:1Ni,0(u)= 0 若uiuk)为给定的空间 n+1 个点,称下列参数曲线p(t)=piNi,k(t),i=0ntk1ttn+1(7)为 k 阶 (k-1 次) 的B样条曲线,折线 P0P1Pn为P(t)的控制多边形。Pi, i = 0
8、,1,n为P(t)的控制顶点。Ni,k(t)为定义在分割tiin=+0k上的 k 次B样条基函数,可由 de Boor-Cox公式确定。z 一般B样条曲线的性质 导数公式由B样条基的微分差分公式,有:nnp(t)=piNi,k(t)=piNi,k(t)i=0i=0ppi1=(k1)iNi,k1(t)i=0ti+k1tin 表示的唯一性n 以Pi0 为控制顶点的 k 阶 B 样条可唯一地表示为P(t)=PiNi,k(t)i=0n。注意:等价于0的B样条表示的唯一性。可由数学归纳法证明。 规范性n当且仅当Pi0 退化为一点,即PiA时,由其所确定的B样条曲线退化为一点。证明:若PiA,则 p(t)
9、=ANi,k(t)=ANi,k(t)=A。反之,若p(t)=A, 即PiNi,k(t)=A,对此式求导,得到此,由Ni,k1(t)的线性无关性,知Pi 连续性 PiPi1Ni,k1(t)=0,因(k1)ti+k1tiPi1,从而PiA。k 阶B样条是分段的 k-1 次参数曲线,在节点处不低于 k-1-m 次连续,m 为节点重数。 凸包性k 阶B样条的任一段,均落在相应的 k 个顶点之凸包内。 局部性改变 k 阶B样条的一个顶点,至多影响此点为中心的相邻 k 段曲线。 直线保持性控制多边形退化为一条直线时, 曲线也退化为一条直线。 几何不变性B样条曲线的形状和位置与坐标系的选择无关。 变差缩减性
10、局部性设平面内 n+1 个控制顶点P0,P1,L,Pn 构成B样条曲线 P(t)的特征多边形。在该平面内的任意一条直线与 P(t) 的交点个数不多于该直线和特征多边形的交点个数。de Boor 算法 de Boor 算法的导出现考虑B样条曲线 P(t) 的计算问题。由 de Boor-Cox 公式,有: P(t)=PiNi,k(t)=i=0ni=jk+1PNiji,k(t)ttiti+kt()()NtNt+Pii,k1i+1,k1 tttti=jk+1i+ki+1i+k1ijttittPi1Ni,k1(t)(8)Pi+i+k1=ti+k1tii=jk+1ti+k1ti=j现令Pi,r=0,i=
11、jk+1,jk+2,j;Pir(t)=ttiti+krtr1r1Pi(t)+Pi1(t), ttttii+kri+krir=1,2,k1;i=jk+r+1,jk+r+2,j;(9)则 (8) 式可表示为P(t)=ii=jk+1PNji,k(t)=ii=jk+2Pj1(t)Ni,k1(t)上式是同一条曲线P(t)从 k 阶B样条表示到 可 k-1 阶B样条表示的递推公式,反复应用此公式,得到:P(t)=Pjk1(t)这就是著名的 de 于是,P(t)的值可以通过递推关系式 (9) 求得。Boor 算法。 de Boor 算法的递推关系 de Boor 算法的几何意义de Boor算法有着直观的几
12、何意义 割角,即以线段PirPi+r1 割去角Pir1。从多边形 Pjk+1Pjk+2Pj 开始,经过 k-1 层割角,最后得到P(t)上的点Pjr1(t)。 由de Boor 算法导出三次B样条的Bezier表示在使用时,为了减少计算量,希望曲线次数越低越好,但二次曲线是一条抛物线,不能反应曲线的拐点;所以一般使用三次 ( 四阶) 样条曲线。下面来讨论三次(四阶)样条曲线与Bezier曲线的关系。由 de Boor 算法,知下列公式成立:2P(tj)=Pj3(tj)=Pj1(tj)32P(tj+1)=Pj+1(tj+1)=Pj(tj+1)P(tj)=3(P(tj)P(tj)1P(tj+1)=
13、3(Pj2(tj+1)Pj1(tj+1)1j12j1由于P(t)在区间 tjttj+1 上是三次多项式,故以上两个性质表明:这段曲线如表示成三次Bezier曲线,则其控制顶点为2112Pj1(tj),Pj1(tj),Pj1(tj+1),Pj(tj+1)。即P(t)可表示为P(t)=i=j3PNi2j1ji,4(t) ttjttj13=P(tj)Bt+Pj1(tj)B1tjj3ttjttj23+P(tj+1)Bt+Pj(tj+1)B3t,jj1j132其中,tjttj+1,tj=tj+1tj。这表明,对四阶B样条曲线P(t)而言,de Boor算法不仅是求P(t)的方法,也是把P(t)转化为一段
14、Bezier曲线的工具。z Oslo节点插入算法假设原始节点矢量序列为P0,P1,L,Pn, T=t0,t1,tn+k, 且为非减序列;原始控制顶点在节点区间ti,ti+1中插入 s 重 (sk) 节点 t,控制点中与区间ti,ti+1 相关的 k 个原始控制顶点为Pik+1,Pik+2,Pi1Pi。经过节点插入后,曲线不变,但控制顶点和节点矢量将发生变化。新的节点矢量记为T=t0,t1,tm+k1, T仍为非减序列。新的控制顶点由下式给出: Qj=ik,jPi,i=0n0jm其中i0,j1=0tj+k1titjtj+1Otherwiseti1ik,j+ik,j=ti+ktj+k1ik+11,
15、jti+k1titi+kti+1z Boehm节点插入算法 1插入一个节点设已给一条k阶B样条曲线的原始节点矢量为T=t0,t1,L,tn+k。现在要在定义域某个节点区间ti,ti+1内插入一个节点t,于是得到新的节点矢量T1=t0,t1,L,ti,t,ti+1,L,tn+k,重新编号成为111T1=t0,t1,L,ti1,ti1+1,ti1+2,L,tn+k+1这个新的节点矢量U1决定了一组新的B样条基Ni1,k(t)i=0,1,L,n+1。原来的B样条曲线就可以用这组新的B样条基与未知新顶点di1表示出pt=1jN1j,k(t)。j=0n+11980年Boehm给出了这些未知新顶点的计算公
16、式(s重):1j=j, j=0,1,L,ik+1ttj1j=(1j)j1+jj, j=ik+2,L,is其中j=tj+k1tj1=, j=is+1,L,n+1j1js=0时插入一个节点2 重复插入同一节点Boehm将插入一单个节点的算法推广用来插入一个重节点。实际上是用递推得到:j, r=0ttjrr1r1j=(1j)j1+jj, r=1,2,L,l其中j=tj+kstj z 利用节点插入算法转化B样条为BezierB样条曲线通过插入节点,使曲线定义域内所有节点具有重复度k就可以得到一组首尾相接且同为K次的Bezier曲线。B样条曲线采用分段Bezier曲线表示后,各段曲线就具有了相对独立性。
17、移动一曲线段内的Bezier点只影响该曲线段的形状,对其它曲线段的形状没有影响。反算B样条插值曲线的控制定点为了使一条k次B样条曲线通过一组数据点Pi, i=01,.n,反算过程一般使数据点Pi与B样条曲线定义域内的节点一一对应,即Pi有节点值Uk+i i=0,1,.n。接着就可以给出由n+k个控制定点为未知矢量的由n+1个矢量方程组成的线性方程组。n+k1P(Uk+i)=dNjj=0j,k(Uk+i)=Pii=0,1,.,n对于周期闭曲线,令dn+i=di, i=0,1,k-1。可以解出唯一解。对于开曲线(包括非周期曲线),需补充k-1个由合适的边界条件给出的附加方程联立求解,如:切矢条件,
18、自由端点条件等。 z 三次B样条曲线的重顶点技术4顶点重合4顶点共线z 三次B样条曲线的重节点技术 端点处四重节点。 即:t0=t1=t2=t3t4,则且以P0P1为切方向。 内节点有三中节点。则:20p(t)过P0,P(ti)=Pi(ti)PP(ti+) t0=t1=t2=t3t4=t5=t6=t7, (特别地,可以取 0000 1=1=1=1) 则,t3,t4 上为以P0,P1,P2,P3 为顶点的Bezier曲线,即3 P(t)=PiBi(i=03|(PiPi1) |(Pi+1Pi)tt3),t4t3t3t0,其余i0;Ni,k(u)是由节点矢量Tt0, t1, , ti, , ti,
19、, tn+k决定的k 阶B样条基函数,节点个数m=n+k+1,n为控制项的点数,k为B样条基函数的阶数。对于非周期NURBS曲线,常取两端节点的重复度为k,即有:T=,L,tk+1,L,tn,L,,在大多数实际应用中,=0, =1。 kk1tiuti+1Ni,1(u)=0otherwise, (uti)Ni,k1(u)(ti+1u)Ni+1,k1(u)Ni,k(u)=+ti+k1titi+kti+1CN(u)在tiuti+区间上是一个k-1次有理多项式,C N(u)在整条曲线上具有k-2次连续性,对于三次B样条基函数,具有C2连续性。当n=k-1时,k阶NURBS曲线变成n次有理Bezier曲线。(2) 有理基函数表示CN(u)=PiRi,k(u),i=0nRi,k(u)=iNi,k(u)j=0n jNj,k(u)Ri,k(u),i=0,1,n称为k阶有理基函数,具有k阶B样条基函数类似的性质。1) 局部性:Ri,k(u)=0,uti, ti+k+1;2) 权性:Ri,k(u)=1;i=0n3) 可导性:在节点处具有(k-1-r)次连续可导,r是在该节点的重复度。4) 若i=0,则R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业租厂房签合同
- 物业第三方委托合同
- 物业管理3方合作合同
- 物业管理承揽合同
- 物业管理费转让合同
- 物业经营项目合同
- 美食线路合作协议2025年合同
- 物业要求看租房合同
- 物业费征收合同
- 物业转租加租金合同
- 康复医学科临床诊疗指南
- DB32-T 1712-2011 水利工程铸铁闸门设计制造安装验收规范
- 简述食品安全与卫生发展史
- 流行病学曲线图解读
- 食品安全十分钟队会
- 青少年软件编程(图形化)等级考试试卷(三级)附有答案
- JBT 10960-2024 带式输送机 拉绳开关(正式版)
- 案例分析-垂体腺瘤 课件
- 基于知识本体的铁路工程EPC总承包项目风险管理研究
- 查缉战术课件大纲
- 抖音员工号申请在职证明参考模板
评论
0/150
提交评论