您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 计算机图形学基础教程――第3章3
清华大学计算机图形学第三章几何造型技术清华大学计算机图形学3.3B样条曲线与曲面•Bezier曲线或曲面有许多优越性,但有两点不足:–Bezier曲线或曲面不能作局部修改;–Bezier曲线或曲面的拼接比较复杂清华大学计算机图形学•1972年,Gordon、Riesenfeld等人发展了1946年Schoenberg提出的样条方法,提出了B样条方法,在保留Bezier方法全部优点的同时,克服了Bezier方法的弱点。样条的史话清华大学计算机图形学•样条的史话(1)–1946年的红皮书Schoenberg拉开了神话的序幕从插值的R-K现象说起样条-分段连续多项式清华大学计算机图形学•样条的史话(2)–断言样条不可能用于外形设计–几何样条出项,离散计算,峰回路转Riesenfield,Gordan,...清华大学计算机图形学•如何理解B-样条?–样条插值,三对角方程(函数、参数)–给定分划,所有的样条的全体组成一个线性空间,线性空间有基函数,这就是B样条基函数–由B样条基函数代替Bezier曲线中底Bernstein基函数,即B样条曲线。清华大学计算机图形学3.3.1B样条的递推定义和性质•B样条曲线的方程定义为:是控制多边形的顶点(i=0,1,..,n)称为k阶(k-1次)B样条基函数B样条基函数是一个称为节点矢量的非递减的参数t的序列所决定的k阶分段多项式,也即为k阶(k-1次)多项式样条。nikiitNPtP0,)()(),,1,0(niPi)(,tNki清华大学计算机图形学•deBoor-Cox递推定义并约定几个问题OtherwisetxttNiii01)(11,)()()(1,111,1,tNtttttNtttttNkiikikikiikiiki000knknnnkktttttttt,,,,,,,,,,11110清华大学计算机图形学•几个问题–的非零区间是什么?–需要多少个节点?–定义区间是什么?)(,tNki清华大学计算机图形学•以k=4,n=4为例876543210,,,,,,,,ttttttttt清华大学计算机图形学2.性质–局部支承性。–权性。–微分公式。otherwisettttNkiiki0],[0)(,ninkkittttN011,],[1)()(1)(1)(1,111,1,tNttktNttktNkiikikiikiki清华大学计算机图形学•B样条曲线类型的划分–曲线按其首末端点是否重合,区分为闭曲线和开曲线。–B样条曲线按其节点矢量中节点的分布情况,可划分为四种类型。清华大学计算机图形学•均匀B样条曲线。节点矢量中节点为沿参数轴均匀或等距分布,所有节点区间长度为常数。这样的节点矢量定义了均匀的B样条基。图3.1.23三次均匀的B样条曲线清华大学计算机图形学•准均匀B样条与均匀B样条曲线的差别在于两端节点具有重复度k,这样的节点矢量定义了准均匀的B样条基。均匀B样条曲线没有保留Bezier曲线端点的几何性质,即样条曲线的首末端点不再是控制多边形的首末端点。采用准均匀的B样条曲线解决了这个问题图3.1.24准均匀三次B样条曲线清华大学计算机图形学•分段Bezier曲线节点矢量中两端节点具有重复度k,所有内节点重复度为k-1,这样的节点矢量定义了分段的Bernstein基。图3.1.25三次分段Bezier曲线清华大学计算机图形学B样条曲线用分段Bezier曲线表示后,各曲线段就具有了相对的独立性,移动曲线段内的一个控制顶点只影响该曲线段的形状,对其它曲线段的形状没有影响。并且Bezier曲线一整套简单有效的算法都可以原封不动地采用。缺点是增加了定义曲线的数据,控制顶点数及节点数。清华大学计算机图形学•非均匀B样条曲线任意分布的节点矢量,只要在数学上成立(节点序列非递减,两端节点重复度≤k,内节点重复度≤k-1)都可选取。这样的节点矢量定义了非均匀B样条基。01[,,,]nkTttt清华大学计算机图形学3.3.2B样条曲线的性质–局部性。k阶B样条曲线上参数为的一点至多与k个控制顶点有关,与其它控制顶点无关;移动该曲线的第i个控制顶点Pi至多影响到定义在区间上那部分曲线的形状,对曲线的其余部分不发生影响。],[1iittt),,1(ikijPj),(kiitt清华大学计算机图形学–连续性P(t)在r重节点处的连续阶不低于k-1-r。–凸包性P(t)在区间上的部分位于k个点的凸包内,整条曲线则位于各凸包的并集之内。nikttii1),,(1ikiPP,,1iCiC清华大学计算机图形学–分段参数多项式P(t)在每一区间上都是次数不高于k-1的参数t的多项式–导数公式],[)()1()()()(111,1110,0,'nkkiniikiiinikiinikiittttNttPPktNPtNPtP清华大学计算机图形学–变差缩减性设平面内n+1个控制顶点构成B样条曲线P(t)的特征多边形。在该平面内的任意一条直线与P(t)的交点个数不多于该直线和特征多边形的交点个数。–几何不变性B样条曲线的形状和位置与坐标系的选择无关。清华大学计算机图形学–仿射不变性即在仿射变换下,的表达式具有形式不变性。–直线保持性控制多边形退化为一条直线时,曲线也退化为一条直线。ninkkiittttNPAtPA011,],[,)(][)]([清华大学计算机图形学–造型的灵活性。用B样条曲线可以构造直线段、尖点、切线等特殊情况.对于四阶(三次)B样条曲线.若要在其中得到一条直线段,只要四点位于一条直线上321,,,iiiiPPPP清华大学计算机图形学•为了使P(t)能过P(i)点,只要使重合•尖点也可通过三重节点的方法得到•为了使曲线和某一直线L相切,只要取位于L上及的重数不大于2。21,,iiiPPP21,,iiiPPP3it清华大学计算机图形学iP1iP2iP3iP)(tP(a)四顶点共线iP1iP2iP3iP4iP三重顶点二重顶点(b)二重顶点和三重顶点iP1iP2iP1iPiP1iP2iP3iP(c)二重节点和三重节点(d)三顶点共线图.1.26三次B样条曲线的一些特例清华大学计算机图形学3.3.3deBoor算法•欲计算B样条曲线上对应一点P(t),可以利用B样条曲线方程,但是采用deBoor算法,计算更加快捷。–deBoor算法的导出],[)()()()()()(11,1111111,111,11,0,jjkijkjiiikikiiikiijkjikiikikikiikiiijkjikiinikiittttNPttttPtttttNtttttNttttPtNPtNPtP清华大学计算机图形学–现令则这就是著名的deBoor算法jrkjrkjikrtPtttttPttttjkjkjirPtPriirkirkiriirkiiiri,,2,1;1,,2,1),()(,,2,1,0,)(]1[1]1[][jkjikiijkjikiitNtPtNPtP21,]1[1,)()()()(清华大学计算机图形学deBoor算法的递推关系如图nkjjjjkjkjkjkjkjkjPPPPPPPPPPPPP]1[]2[]1[]2[3]1[33]1[22121清华大学计算机图形学•DeBoor算法的几何意义–deBoor算法有着直观的几何意义割角,即以线段割去角。从多边形开始,经过k-1层割角,最后得到P(t)上的点][1][ririPP]1[riPjkjkjPPP21)(]1[tPrj清华大学计算机图形学1kjP2kjPjP]1[2kjP]1[3kjP]1[jP]2[3kjP]2[jP]3[4kjP]1[kjP图3.1.28B样条曲线的deBoor算法的几何意义清华大学计算机图形学3.3.4节点插入算法•通过插入节点可以进一步改善B样条曲线的局部性质,提高B样条曲线的形状控制的灵活性,可以实现对曲线的分割等。–插入一个节点在定义域某个节点区间内插入一个节点t,得到新的节点矢量:重新编号成为1,iitt11121111101,,,,,,,1kniiittttttTkniittttttT,,,,,,,1101清华大学计算机图形学这个新的节点矢量U1决定了一组新的B样条基原始的B样条曲线就可以用这组新的B样条基与未知新顶点表示1iP101,1)()(njkjtNPtPj清华大学计算机图形学•Boehm给出了这些未知新顶点的计算公式•r表示所插结点t在原始节点矢量T中的重复度。1,,1,,,2,)1(1,,1,0,11111nrijPPrikijPPPkijPPjjjjjjjjjjkjjjtttt1清华大学计算机图形学1kiP2kiP3kiP1iPiP12kiP13kiP1iP图3.1.30实线框中k个新顶点取代虚线框中k-1个原始顶点0P1P2P3P11P12P13P1t2t3t4t5t6tt图3.1.31三次B样条曲线插入一个节点],[43ttt清华大学计算机图形学0P1P2P3P11P1t2t3t4t5t6tt图3.1.32三次B样条曲线插入一个节点)(32ttt清华大学计算机图形学3.3.5B样条曲面•给定参数轴u和v的节点矢量p×q阶B样条曲面定义如下],,,[10pmuuuU],,,[10qnvvvVminjqjpiijvNuNPvuP00,,)()(),(清华大学计算机图形学构成一张控制网格,称为B样条曲面的特征网格。和是B样条基,分别由节点矢量U和V按deBoor-Cox递推公式决定。)(,uNpi)(,vNqjijP清华大学计算机图形学00P10P20P30P01P11P21P31P02P22P12P32P03P23P33P图3.1.33双三次B样条曲面片清华大学计算机图形学3.4NURBS曲线与曲面•B样条曲线包括其特例的Bezier曲线都不能精确表示出抛物线外的二次曲线,B样条曲面包括其特例的Bezier曲面都不能精确表示出抛物面外的二次曲面,而只能给出近似表示。•提出NURBS方法,即非均匀有理B样条方法主要是为了找到与描述自由型曲线曲面的B样条方法既相统一、又能精确表示二次曲线弧与二次曲面的数学方法。清华大学计算机图形学–NURBS太过复杂,常令人望洋兴叹–NURBSBook,走向实用化(见下页)清华大学计算机图形学SomeyearsagoafewresearchersjokedaboutNURBS,sayingthattheacronymreallystandsforNOBODYUnderstandsRationalB-Splines,writetheauthorsintheirforeword;theyformulatetheaimofchangingNURBStoEURBS,thatis,Everybody.…Thereisnodoubtthattheyhaveachievedthisgoal....IhighlyrecommendthebooktoanyonewhoisinterestedinadetaileddescriptionofNURBS.Itisextremelyhelpfulforstudents,teachersanddesignersof
本文标题:计算机图形学基础教程――第3章3
链接地址:https://www.777doc.com/doc-3681486 .html