1、13:35B样条曲线与曲面n以Bernstein基函数构造的Bezier曲线或曲面有许多优越性,但有两点不足:n其一是Bezier曲线或曲面不能作局部修改;n其二是Bezier曲线或曲面的拼接比较复杂。n1972 年,Gordon、Riesenfeld等人提出了B样条方法,在保留Bezier方法全部优点的同时,克服了Bezier方法的弱点。13:35B样条的定义和性质13:35基本概念n三次均匀B样条曲线13:3513:35三种等价表示13:35Clark关于B样条的定义13:35约束条件13:3513:3513:3513:3513:3513:35用截尾幂函数的差商定义B样条13:3513:3
2、513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:35B样条递推定义13:35B样条曲线的性质13:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:35n高次与低次B样条函数之间的关系13:35nB样条函数求导的递推性质nB样条曲线的导数可以用低阶的B样条基函数和顶点矢量差商序列的线性组合表示13:35均匀B样条曲线和曲面13:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:
3、3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:35NURBS曲线与曲面nB样条方法在表示与设计自由型曲线、曲面形状时显示了强大的威力,然而在表示与设计初等曲线、曲面时时却遇到了麻烦。因为B样条曲线(包括其特例的Bezier曲线)都不能精确表示出抛物线外的二次曲线,B样条曲面(包括其特例的Bezier曲面)都不能精确表示出抛物面外的二次曲面,而只能给出近似的表示。提出NURBS方法,即非均匀有理B样条方法,主要是为了找到与描述自由型曲
4、线、曲面的B样条方法既相统一,又能精确表示二次曲线弧与二次曲面的数学方法。13:35主要优点 n既为标准的解析形状(即前面提到的初等曲线曲面),又为自由型曲线曲面的精确表示与设计提供了一个公共的数学形式。n可修改控制顶点和权因子,为各种形状设计提供了充分的灵活性。n与B样条方法一样,具有明显的几何解释和强有力的几何配套技术(包括节点插入、细分、升阶等)。n对几何变换和投影变换具有不变性。n非有理B样条、有理与非有理Bezier方法可以处理为它的特例。13:35问题n比传统的曲线曲面定义方法需要更多的存储空间,如空间圆需7个参数(圆心、半径、法矢),而NURBS定义空间圆需38个参数。n权因子选
5、择不当会引起畸变。n对搭接、重叠形状的处理很麻烦。n反求曲线、曲面上点参数值的算法不稳定。13:35非均匀B样条基函数13:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:35曲面求交算法13:35曲面求交算法应满足的要求n1)稳定鉴于曲面求交的重要性,求交算法必须满足稳定性要求其中包括不会导致求交失败及能够找到所有交线段n2)准确求得的交线必须符合给定的容差要求,否则得到的交线没有任何意义n3)快速由于在cAD/CAM系统中需要进行大量的求交运算,因此求交算法的
6、运算速度具有至关重要的意义13:35n三种基本类型:n1)代数代数曲面求交n2)代数参数曲面求交n3)参数参数曲面求交13:3513:3513:3513:35参数参数曲面求交方法n1)代数法,也称为解析法其主导思想是充分利用有关代数曲面求交的现有成果,将其应用到自由曲面的求交中通常是将自由曲线曲面的参数表达式精确或近似地转换为代数方程的形式,从而将参数参数曲面求交问题转化为代数代数曲面或代数参数曲面求交问题,并利用求解一元高次方程得到交线这种方法在计算低幂次(二次以下)曲面片间的交线时可以获得较好的效果但对于三次以上的自由曲面,特别是有理曲面的求交,交线代数方程的阶数将非常高例如,由一张双三次
7、曲面片转化的将为一含有324项的18次代数方程采用代数法对两张双三次曲面片求交,交线方程为324 可见,对于一般参数曲面,利用这种方法求交,无论是准确性、稳定性还是计算效率均难以保证,因此实际上较少采用13:35n2)网格离散法该法的基本思想是先将曲面离散为由小平面片组成的网格,当网格足够细密时,可以认为已经非常接近真实曲面对分别表示不同曲面的两张网格,利用平面片求交法求得交线,并以此交线近似代表曲面间的交线该法原理简明,便于实现,适用范围广,任意参数曲面均可利用该方法求交但为获得精确的交线,则必须生成非常细密的网格,这将导致占用内存多、计算花费大因此,实际工作中很少单一使用网格法,通常将其与
8、其他方法结合使用13:35n 3)分割法该法与用网格离散法有些类似,都是以小平面片的交线代替曲面的交线所不同的是分割法不是将曲面直接离散,而是基于DivideConquer思想,亦称测试离散思想,即在对两曲面片离散之前,先利用曲面片的凸包进行相交测试,并只对凸包相交曲面片进行细分将凸包相交的曲面片细分为四个子曲面片对两张曲面的子曲面片重复前述过程,直至子曲面片满足求交的精度要求,而后以平面片的交线代替曲面片的交线分割法仅对可能相交的曲面片细分,既减少了需要的存储空间,又加快了测试和求交速度,因而其效果显著优于网格离散法但分割法需要应用曲面的凸包性和分割性,故仅适用于Bezier和B样条曲面,而
9、难以应用于如Coons曲面和等距面等其他参数曲面分割求交的精度比较低,这是因为平面片的交线偏离真实交线的误差比较大实际应用中,分割法也需要与其他方法结合才能获得比较满意的效果13:35n 4)迭代法迭代法本身并不能构成一个独立的求交方法与所有不动点迭代法一样,应用迭代法求交线之前,首先必须给出交点的初始估计值,而交点的初始估计值必须通过其他求交方法得到因此,迭代求交常同其它求交方法结合使用,作为交点精化的一种手段迭代法的主要过程是根据初始估计点的几何性质(如坐标位置、切矢、法矢、曲率等)运用Newton方拄得到一个较原估计点更接近于目标点(即精确交点)的估计点如此反复进行,直到求得的交点满足所
10、要求的精度该法的优点是在初值比较好时其收敛速度非常快,而且能应用于任意参数曲面包括Coons曲面和等距面等,因此应用非常广泛其主要缺点是对初值的要求比较苛刘,初值选择不当有可能导致迭代不收敛13:35n5)追踪法其主要思想是,在已知某一点为两曲面交点的前提下,以该点为起点,沿着交线前进方向探索下一个交点:重复上述过程,直至求得交线上的所有交点该法的优点是适用范围广,可用于任意参数曲面,而且计算速度快,占用内存少追踪法关键是初始点的获得比较困难,如何求得所有交线的初始点一直是人们的研究热点,也是追踪法的关键所在初始交点选取不当将导致追踪方法失败13:35n 上述各种求立方法各有利弊,单纯使用任何
11、一种方法都无法解决应用中可能遇到的各种复杂情况正因为如此,扬长避短、综合利用几种方法的思想逐渐为人们所接受为了保证实用性,目前的CADCAM软件都利用了综合方法13:35曲面求交的分割法n先对两张曲面的凸包性相交测试若两者不相交,则由曲面凸包性质可知,两张曲面不会相交如若两者相交(两曲面可能相交),则运用分割技术分别将两张曲面一分为四,而后对两者的子曲面片重复上述测试过程,并舍去凸包不相交的子曲画片当达到一定分割层次(等深度求交)或者曲面片已足够平坦(自适应深度求交)时,即用平面片近似表示曲面片,并以平面片的交线近似表示曲面片间的交线最后将分段求得的交线段按照拓扑关系首尾相连,以获得整条交线至
12、此,分割求交过程结束。n非常适用于Bezier和B样条的曲面求交,其计算速度快,算法简单,容易实现13:3513:3513:3513:3513:35n在实际的求交算法中,分割法常用于计算交点的初始估计值,并不需要很高的分割深度,故等深度分割的缺点并不明显n在一般情况下以采用等深度离散分割法为好13:3513:3513:35曲面分割求交的算法n1)确定最大分割层次n,初始化交线表n2)确定两张曲面片的凸包,并检查两凸包是否相交,无交则转(6),否则转(3)n3)如分割层次不到n,对曲面片进行四叉分割,每张曲面片都一分为四对一张曲面片的每一子曲面片均将其与另一曲面片的四个子曲面片求交,即递归调用过
13、程2)n4)如离散层次已达到n,则以两个三角形分别代替原曲面片对一曲面片的每一个三角形,都分别与另一曲面片的两个三角形求交n5)将步骤4)中求得的交线首尾相连,检查所得交线与交线表中原有交线是否相连,即检查所得交线的首尾与原交线的首尾是否相连如相连,则将所得交线连入原有交线;否则生成新交线n6)返回13:35n实践表明上述算法比较稳定,而且交线的拓扑结构如环的数量及类型都比较正确实践也证明了借提高分割层次以提高曲面交线精度的办法是得不偿失的在分割34层后,精度的提高已无法弥补由于离散层次加深而导致的数据量过大、速度慢和交点过密等不足在此情况下宜用迭代法来提高交点的精度13:35曲面求交中的迭代
14、法n 为求得精确的交点,NewtonRaphon迭代法得到了广泛应用该法的优点为n1)计算精度高、速度快在初值选择比较合理的情况下,一般仅需迭代二至三次,就可以使交点的精度从百分之几提高至万分之几甚至百万分之一的数量级n2)适用范围比较广只要能获得曲面的几何位置、切矢、法矢等信息,不论什么类型的曲面都可以使用迭代法其缺点是时初值的要求较严格,初值选择不当可能导致迭代不收敛,也就无法得到精确的交点13:35n一张参数曲面有两个参数,两张曲面共有四个参数变量n三参数迭代法时,两曲面的四个参数中只有三个参数参与迭代过程,而保持另个参数固定不变这实际上就是计算不变参数的等参数线与另一张曲面的交点n采用
15、四参数迭代过程时,两张曲面片的四各参数都参与迭代过程,四者都有可能改变13:35n三参数迭代法n1)要求将交点迭代至某一条特殊的等参数线上如在追踪求交法的初始点迭代中希望将精确值迭代到网格的等参数线上,以利于后继追踪中滤除无效初值点n2)当交线接近于参数边界时希望将交点迭代至准确的边界上,以便进行裁剪等操作13:35n但对于求解一般交点,三参数法则未必适用首先遇到的问题是在四个参敷中选择何者作为不变参敷固定参数选择不当可能会降低迭代收敛速度以至根本不收敛,或者会破坏交线拓扑结构的正确性nc为实际曲面的交线,P1为估计点若以U0为固定参数,则无法在u线上找到交点n此时应用三参数迭代法显然是不妥的
16、因此,对于一般情况下的交点,以应用四参数迭代法为好13:35n四参数迭代法总是去寻求离估计点最近的精确交点作为迭代过程的解但也正因为如此,四参数迭代法的搜索方向不易控制,这又限制了它的应用例如,当应用四参数法在曲面边界附近寻求精确交点时,将使选代过程出现很严重的抖动,且收敛速度慢、不稳定综上所述,三参数和四参数迭代法各有其相应的适用范围,在实际工作中应联合使用两种方法13:3513:3513:3513:3513:35n1)自由曲面边界的处理自由曲面都是有边界的,在边界之外没有定义是不确定的因此我们必须保证迭代算法始终在曲面的定义城内进行,不能出现跨越边界的行为一旦发生超界,用整个迭代过程就会发
17、散当交点处于曲面边界附近时,发生超界的概率很大为此,可在迭代过程中不断地对参数进行检测,当参数值超出了定义域,就以所跨越定义域的边界值作为参数值继续进行迭代实践表明,应用该法可达到较好的效果13:35n2)迭代过程收敛与否的判断运算中,由于迭代初值选择不当或曲面性态不佳,都会降低迭代过程的收敛速度甚至使迭代不收敛,故必须对其进行严格控制,发现发散后应及时终止迭代过程,但判断数列的发散与否非常复杂为简便起见,可以限制迭代次数的最大值,即当迭代次数达到最大值后仍不能得到符合精度要求的解时,就认为已经发散通常,需要根据经验来确定最大迭代次数13:35曲面求交的追踪法n追踪法求交的提出n对于一般NUR
18、BS曲面的求交,先用分割离散法求得交线的拓扑结构和交点的估计值,然后再应用迭代法由估计值求得精确交点如果认为交点分布不够细密,可以利用对分法加密,即以两个相邻交点的平均值作为新交点的估计值,再应用迭代法得到一个新的精确交点由此可以获得完整、致密的精确交线,而无需应用追踪法但对于任意参数曲面如三次参数曲面、Ferguson曲面及coons曲面等,因其不具备凸包性和分割性而无法使用分割法进行求交在此情况下,需应用综合多种算法的追踪法计算交线13:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:35曲面交线的表达n1)交点的表示利用各种求交算法可以
19、得到的交点信息有:交点的三维笛卡儿坐标和交点在两参数曲面上的参数坐标(u,v)和(s,t);有理曲面求交时还包括两张曲面上与交点对应的权值上述信息并不都是有用的,应结合实际需要来取舍一般地,交点在两曲面上的权值信息没有实用童义,不需要保存在以交线为边界做曲面裁剪时,只需要保留交点的参数坐标,无需保存交点的笛卡儿坐标而以交线为边界构造曲面时,只需保留交点的笛卡儿坐标13:35n2)交线的组织交线的组织原则是要有利于求交过程中判断交线间的拓扑关系,井能够方便地调整各交线间的拓扑关系 n3)交点的删除在求交过程中得到的交点序列往往非常致密这样虽可以保证交线的精度,但保存的数据量太大在实际应用中,往往
20、需要删除交线中的部分交点以减少数据量,其原则是删除那些对交线精度影响不大的交点可以使用最小二乘法对交线逼近,以删除不必要的点也可以考虑使用能量优化插值方法13:35曲线、曲面的光顺处理n光顺准则13:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:35曲面的光顺性检查13:35基于曲率的方法13:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:3513:35