收藏 分销(赏)

Bezier曲面与B样条曲面.pptx

上传人:精*** 文档编号:5731899 上传时间:2024-11-17 格式:PPTX 页数:75 大小:1.26MB 下载积分:16 金币
下载 相关 举报
Bezier曲面与B样条曲面.pptx_第1页
第1页 / 共75页
Bezier曲面与B样条曲面.pptx_第2页
第2页 / 共75页


点击查看更多>>
资源描述
17 十一月 2024西安工程大学数学系1第第5 5章章 曲线与曲面的生成与计算曲线与曲面的生成与计算5.1 5.1 曲面的参数表示曲面的参数表示 5.2 Bezier5.2 Bezier、B B样条曲线的生成样条曲线的生成5.3 5.3 曲面的参数表示曲面的参数表示 5.4 Bezier5.4 Bezier、B B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系2v 曲面和曲线一样,是计算机图形学中研究的重要内容曲面和曲线一样,是计算机图形学中研究的重要内容之一,它们在实际工作中有着广泛的应用。在工程应用中,之一,它们在实际工作中有着广泛的应用。在工程应用中,常用的自由曲面有很多,例如:常用的自由曲面有很多,例如:Bezier曲面、曲面、B样条曲面、样条曲面、Coons曲面等。曲面等。v 在计算机出现之前以及在计算几何没有很好地发展之在计算机出现之前以及在计算几何没有很好地发展之前,对于一些工程实际中应用的复杂自由曲面,如飞机、前,对于一些工程实际中应用的复杂自由曲面,如飞机、轮船、汽车等几何外形的描述以及地形形状的表示,轮船、汽车等几何外形的描述以及地形形状的表示,传统传统的处理办法是用一组或几组平行平面去截这个曲面,画出的处理办法是用一组或几组平行平面去截这个曲面,画出几组截交线来表示这个曲面几组截交线来表示这个曲面。v例如:船体就是用相互正交的三组平面截得的纵剖线、横例如:船体就是用相互正交的三组平面截得的纵剖线、横剖线和水平线表示的;剖线和水平线表示的;曲线与曲面的生成与计算曲线与曲面的生成与计算17 十一月 2024西安工程大学数学系3v又例如:地面则是用一组水平面截得一组等高线表示的,又例如:地面则是用一组水平面截得一组等高线表示的,这实际上是把曲面问题转化为曲线问题。这种处理办法称这实际上是把曲面问题转化为曲线问题。这种处理办法称为为曲线网格表示法曲线网格表示法,正是利用这些曲线网格来近似地表示,正是利用这些曲线网格来近似地表示自由曲面。如下所示:自由曲面。如下所示:17 十一月 2024西安工程大学数学系4v因此,在产生一张曲面时,我们可以因此,在产生一张曲面时,我们可以利用一系列的纵横交利用一系列的纵横交错且相互平行的样条曲线来构造曲面错且相互平行的样条曲线来构造曲面,如下图所示。,如下图所示。图图 曲面的网格曲面的网格注:那么我们如何确定这张曲面注:那么我们如何确定这张曲面上任意一点的位置呢?上任意一点的位置呢?1.若这点恰好落在某一条网格若这点恰好落在某一条网格线上,如右图中的线上,如右图中的A点,则就可点,则就可以根据这条网格线的函数表示来以根据这条网格线的函数表示来计算这一点的位置(坐标);计算这一点的位置(坐标);2.若这点不在任何网格线上,若这点不在任何网格线上,如右图中的如右图中的B点,则无法计算该点,则无法计算该点的精确位置,只能用离该点最点的精确位置,只能用离该点最近的一条网格线上的点来近似表近的一条网格线上的点来近似表示。示。17 十一月 2024西安工程大学数学系5v 对于不在网格上的点,若用离该点最近的一条网格线上对于不在网格上的点,若用离该点最近的一条网格线上的一点来近似表示,这会使得本来精度不很高的近似曲面在的一点来近似表示,这会使得本来精度不很高的近似曲面在这一点的精度更低,所以用这种方法来产生曲面只能适合一这一点的精度更低,所以用这种方法来产生曲面只能适合一部分精度不很高的场合。我们可以把平面里自由曲线生成方部分精度不很高的场合。我们可以把平面里自由曲线生成方法加以推广到曲面的生成问题上,借助于曲面的解析表达式法加以推广到曲面的生成问题上,借助于曲面的解析表达式来处理有关曲面问题。来处理有关曲面问题。曲面的种类繁多,为了便于讨论,将曲面曲面的种类繁多,为了便于讨论,将曲面分为两类分为两类:一类是规则曲面,如柱、锥、椭球、环、双曲面、抛物面等,一类是规则曲面,如柱、锥、椭球、环、双曲面、抛物面等,它可用参数方程解析地描述;它可用参数方程解析地描述;另一类是不规则曲面,如另一类是不规则曲面,如Coons曲面、曲面、Bezier曲面、曲面、B样条样条曲面等,这是曲面等,这是构造某种曲面的方程问题构造某种曲面的方程问题。本节我们主要讨论。本节我们主要讨论Bezier曲面曲面、B样条曲面样条曲面的生成与计算。的生成与计算。17 十一月 2024西安工程大学数学系6v 在计算机绘图中常用参数形式表示曲面,自由曲面由曲在计算机绘图中常用参数形式表示曲面,自由曲面由曲面片拼接而成,而曲面片又是由曲线构成,如下图所示:面片拼接而成,而曲面片又是由曲线构成,如下图所示:5.3 曲面的参数表示曲面的参数表示图图 曲面片曲面片17 十一月 2024西安工程大学数学系7v 三维空间任意曲面的三维空间任意曲面的图形如左图所示,图形如左图所示,曲面曲面有两族参数曲线,或称有两族参数曲线,或称为坐标曲线,通常简称为坐标曲线,通常简称u线和线和v线线。图图-参数曲面参数曲面5.3 曲面的参数表示曲面的参数表示17 十一月 2024西安工程大学数学系8v当当 时,代入式子时,代入式子得:得:上式则是曲面上另一条参数曲上式则是曲面上另一条参数曲线线 ,即,即一条一条u线线。v当当 时,代入式子时,代入式子得:得:上式是曲面上一条参数曲线上式是曲面上一条参数曲线 ,即,即一条一条v线线。图图-参数曲面参数曲面即参数即参数u为定为定值的曲面上值的曲面上的线。的线。即参数即参数v为定值的曲面为定值的曲面上的线。上的线。5.3 曲面的参数表示曲面的参数表示17 十一月 2024西安工程大学数学系9v上述两条参数曲线上述两条参数曲线 和和 的交点则是的交点则是 。事。事实上,用实上,用 代入式子代入式子图图-参数曲面参数曲面n也得到曲面上同一点位置矢量也得到曲面上同一点位置矢量 ,即:,即:5.3 曲面的参数表示曲面的参数表示17 十一月 2024西安工程大学数学系10v例如:如下图的例如:如下图的平面片平面片方程为:方程为:平面片平面片v上式中矢量上式中矢量 为平面上为平面上一点的位置矢量,一点的位置矢量,和和 为常矢量,且为常矢量,且 不平行不平行于于 ,该平面片是由矢,该平面片是由矢量量 和和 张成的四边形。张成的四边形。eg:当当u=1/3,v=1/2时对应平时对应平面片中一点:面片中一点:r(1/3,1/2)=r0+a/3+b/25.3 曲面的参数表示曲面的参数表示17 十一月 2024西安工程大学数学系11v又如下图所示,以固定方向长度为又如下图所示,以固定方向长度为 的的直线段直线段作为母线沿作为母线沿给定一条给定一条空间曲线空间曲线移动生成一个柱面,其方程为:移动生成一个柱面,其方程为:上式中上式中 是沿母线方向的常矢量。是沿母线方向的常矢量。柱柱 面面直线段直线段空间曲线空间曲线5.3 曲面的参数表示曲面的参数表示17 十一月 2024西安工程大学数学系12v 如如前前所所述述,Bezier曲曲线线是是一一条条与与控控制制多多边边形形顶顶点点位位置置有有严严格格关关联联关关系系的的曲曲线线,Bezier曲曲线线形形状状趋趋向向于于特特征征多多边边形形的的形形状,而且阶数由控制多边形顶点的个数决定。状,而且阶数由控制多边形顶点的个数决定。v Bezier曲曲 面面 是是 由由 Bezier曲曲 线线 拓拓 广广 而而 来来,它它 也也 是是 以以Bernstein函函数数作作为为基基函函数数,是是由由Bernstein基基函函数数构构造造空空间间点阵列的位置来控制的。点阵列的位置来控制的。v Bezier曲曲线线是是由由特特征征多多边边形形控控制制的的;Bezier曲曲面面则则是是由由特特征网格顶点征网格顶点控制的。二者在表达式上也十分相似。控制的。二者在表达式上也十分相似。5.4 Bezier、B样条曲面的生成样条曲面的生成下面主要介绍工程上流行应用的下面主要介绍工程上流行应用的Bezier曲面曲面和和B样条曲面样条曲面一、一、Bezier(贝塞尔)曲面(贝塞尔)曲面5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系13(1)Bezier曲面的定义曲面的定义 在三维空间中,给定在三维空间中,给定(n+1)X(m+1)个空间点个空间点 Pij (i=0,1,n;j=0,1,m),称称nXm次参数曲面:次参数曲面:为为nm次次Bezier曲面。曲面。是是 的控制顶点,的控制顶点,和和 为为Bernstein 基基函数,具体表示为:函数,具体表示为:5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系14v如果用一系列直线段将相邻的点如果用一系列直线段将相邻的点 和和 一一一一连连接接起起来来组组成成一一张张空空间间网网格格,称称这这张张网网格格为为nXm次次曲曲面面特特征征网网格格。如如下下图图所所示示为为3X3次曲面特征网格。次曲面特征网格。图图 Bezier曲面特征网格曲面特征网格 类似于类似于Bezier曲线情况,特征网曲线情况,特征网格框定了格框定了Bezier曲面曲面P(u,v)的大致的大致形状;形状;Bezier曲面曲面P(u,v)是对特征是对特征网格的逼近。网格的逼近。注:注:实际应用实际应用Bezier曲面时,曲面时,m和和n不宜过大,一般为不大于不宜过大,一般为不大于4,否,否则特征网格对曲面的控制会减弱。则特征网格对曲面的控制会减弱。5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系15vBezier曲面的矩阵表示形式为:曲面的矩阵表示形式为:5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系16vBezier曲面有类似于曲面有类似于Bezier曲线的性质。曲线的性质。(2)Bezier曲面的性质曲面的性质 v性质性质1:端点位置端点位置由于由于说明说明 是曲面的四个端点,如是曲面的四个端点,如左图所示的左图所示的3X 3次曲面次曲面的的4个端点。个端点。图图 Bezier曲面端点的切平面和边界曲面端点的切平面和边界5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系17v性质性质2:边界线位置边界线位置Bezier曲面的四条边界线曲面的四条边界线分别是以分别是以为控制多边形的为控制多边形的Bezier曲线曲线。图图 Bezier曲面端点的切平面和边界曲面端点的切平面和边界即:即:Bezier曲面特征网格最外一圈顶点定义曲面特征网格最外一圈顶点定义Bezier曲面的四条边界曲面的四条边界5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系18图图 Bezier曲面端点的切平面和边界曲面端点的切平面和边界v性质性质3:端点的切平面端点的切平面由计算可知,三角由计算可知,三角 中打上斜线的三角形)中打上斜线的三角形)所在的平面分别在点所在的平面分别在点5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系19v性质性质4:凸包性凸包性曲面曲面P(u,v)位于其控制顶点位于其控制顶点Pij(i=0,1,2,n;j=0,1,2,m)的凸包内。如下图所示:的凸包内。如下图所示:图图 Bezier曲面的凸包性曲面的凸包性5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系20v性质性质5:几何不变性几何不变性曲面曲面P(u,v)的形状和位置与坐标系选择无关,仅仅和点的形状和位置与坐标系选择无关,仅仅和点 位置有关。位置有关。(3)几个低次几个低次Bezier曲面曲面 v由由Bezier曲面的定义曲面的定义我我们们可可以以推推出出一一次次、二二次次以以及及三三次次Bezier曲曲面面的的数数学学表表达达式式,工程上应用较多的是三次工程上应用较多的是三次Bezier曲面。下面依次讨论:曲面。下面依次讨论:5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系21v1)双一次双一次Bezier曲面曲面当当n=m=1时时,为双一次为双一次Bezier曲面,给定曲面,给定(n+1)X(m+1)=2X2=4个控制点:个控制点:P00、P01、P10、P11,则,则5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系22v其图形表示如左图所示,可以证明其图形表示如左图所示,可以证明它是一个它是一个双曲抛物面(马鞍面)上双曲抛物面(马鞍面)上的一块曲面片的一块曲面片。当当u=0和和u=1时,代入上式得到的两时,代入上式得到的两条边界为直线段;条边界为直线段;当当v=0和和v=1时,得到的两条边界也时,得到的两条边界也为直线段。为直线段。所以双一次所以双一次Bezier曲面曲面由四条直线段包围而成由四条直线段包围而成。所以有:所以有:图图 双一次双一次Bezier曲面曲面u=0u=1v=0v=15.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系23v2)双二次双二次Bezier曲面曲面当当n=m=2时时,为双二次为双二次Bezier曲面,给定曲面,给定(n+1)X(m+1)=3X3=9个控制点:个控制点:P00、P01、P02、P10、P11、P12、P20、P21、P22,则,则5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系24所以有:所以有:从而从而5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系25图图 双二次双二次Bezier曲面曲面v其图形表示如左图所示,其图形表示如左图所示,可以知道:可以知道:当当u取定值时,是关于取定值时,是关于v的的二次参数曲线;二次参数曲线;同样,当同样,当v取定值时,是取定值时,是关于关于u的二次参数曲线;的二次参数曲线;注:注:P00、P02、P20、P22 是曲面上的四个端点是曲面上的四个端点5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系26 当当u=0和和u=1时,代入上式得时,代入上式得到的两条边界为抛物线段;到的两条边界为抛物线段;当当v=0和和v=1时,另外两条边界时,另外两条边界也为抛物线段。也为抛物线段。所以双二次所以双二次Bezier曲面由曲面由4条抛物线段包条抛物线段包围而成围而成,如左图所示。显然,如左图所示。显然,中间的一个顶点的变化对边界中间的一个顶点的变化对边界曲线不产生影响,这意味着在曲线不产生影响,这意味着在周边周边8点不变的情况下,适当点不变的情况下,适当调整点调整点P11就可以控制曲面形状就可以控制曲面形状(凹凸性)。(凹凸性)。5.4 Bezier、B样条曲面的生成样条曲面的生成图图 双二次双二次Bezier曲面曲面17 十一月 2024西安工程大学数学系27v3)双三次双三次Bezier曲面曲面当当n=m=3时时,为双三次为双三次Bezier曲面,给曲面,给(n+1)X(m+1)=4X4=16个控制点个控制点:Pij(i=0,1,2,3,j=0,1,2,3),则,则5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系28所以有:所以有:从而从而5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系295.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系305.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系31图图 双三次双三次Bezier曲面曲面v双双三三次次Bezier曲曲面面片片的图形如左图所示。的图形如左图所示。1.矩矩阵阵表表示示双双三三次次Bezier曲曲面面片片特特征征多多面面体体个个控控制制顶顶点点的的位位置置向向量量。显显然然这这个个控控制制点点中中只只有有个个顶顶点点P00、P03、P30和和P33位于位于Bezier曲面上。曲面上。5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系32 2.矩阵中周围的矩阵中周围的2个控制点定义了个控制点定义了4条三条三次次Bezier曲线,即曲线,即边界边界曲线曲线。其余的。其余的4个点个点P11、P21、P12和和P22与边界与边界曲线无关,但影响曲面曲线无关,但影响曲面片的形状,即适当调整片的形状,即适当调整这个点就可以控制曲这个点就可以控制曲面形状(凹凸性)。面形状(凹凸性)。图图 双三次双三次Bezier曲面曲面5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系33(4)绘制绘制Bezier曲面及生成程序曲面及生成程序 例例:上机编程绘制一三次:上机编程绘制一三次Bezier曲面,并输出其运行结果。曲面,并输出其运行结果。1.根据如下公式,编程绘制根据如下公式,编程绘制Bezier曲面。曲面。5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系342.参考程序为:参考程序为:#define n 15main()int px,py,pz,i,j;int xn+1n+1,yn+1n+1,x044,y044,z044;float a4,c4,u,v,delta;void draw();定义定义画画ezier曲面的子函数曲面的子函数 void input();定义输入个控制顶点坐标的子函数定义输入个控制顶点坐标的子函数 input(x0,y0,z0);5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系35vdelta=1.0/n;参数参数u、v对区间对区间0,1的分割精度的分割精度v for(j=0;j=n;j+=1)v v v=delta*j;v c0=(1-v)*(1-v)*(1-v);c1=3*v*(1-v)*(1-v);v c2=3*v*v*(1-v);c3=v*v*v;v for(i=0;i=n;i+=1)v v u=delta*i;v a0=(1-u)*(1-u)*(1-u);a1=3*u*(1-u)*(1-u);v a2=3*u*u*(1-u);a3=u*u*u5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系36vpx=mutipul(a,x0,c);py=mutipul(a,y0,c);vpz=mutipul(a,z0,c);xij=(py*0.7071-px*0.7071+200)*2-300;vyij=(py*0.4082-pz*0.8165+px*0.4082+200)*2-300;v v v printf(output the xij:n);v for(j=0;j=n;j+=1)v for(i=0;i=n;i+=1)v printf(x=%dt,xij);注:因为屏幕显示器是一二注:因为屏幕显示器是一二维平面区域。所以在二维平维平面区域。所以在二维平面里画面里画Bezier曲面曲面三维立体三维立体图,应将三维空间立体坐标图,应将三维空间立体坐标按按某种变换某种变换转化为二维平面转化为二维平面区域坐标。区域坐标。5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系37vprintf(n);v getch();v printf(output the yij:n);v for(j=0;j=n;j+=1)v for(i=0;i=n;i+=1)v printf(y=%dt,yij);v printf(n);v getch();v draw(x,y);根据点坐标,画三次根据点坐标,画三次ezier曲面曲面 v getch();v closegraph();v 注意:输出三次注意:输出三次ezier曲面上共曲面上共(n+1)X(n+1)个点的个点的,坐标值,坐标值5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系38v/*-1:计算曲面上点:计算曲面上点(u,v)的值的值-*/vint mutipul(a,b,c)vfloat a4,c4;vint b44;v int d4,p,i,j,t;v for(j=0;j=3;j+=1)v v dj=0;v for(i=0;i=3;i+=1)t=ai*bij;dj=dj+t;v v p=0;v for(i=0;i=3;i+=1)t=di*ci;p=p+t;v return p;例如:例如:px=mutipul(a,x0,c);5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系39v/*-2:定义画定义画ezier曲面的子函数曲面的子函数-*/vvoid draw(x,y)vint xn+1n+1,yn+1n+1;v int i,j;v int gdriver=DETECT,gmode;v initgraph(&gdriver,&gmode,D:TC);v setbkcolor(0);v cleardevice();v setcolor(15);v printf(“Bezier curved surfacent);v for(j=0;j=n;j+=1)v v for(i=0;i=n-1;i+=1)5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系40v moveto(xij,yij);v lineto(xi+1j,yi+1j);v v v for(i=0;i=n;i+=1)v v for(j=0;j=n-1;j+=1)v moveto(xij,yij);v lineto(xij+1,yij+1);v v v 注:根据曲面上点的注:根据曲面上点的坐标,用画直线的函坐标,用画直线的函数数lineto连接曲面上相连接曲面上相邻的两点,从而生成邻的两点,从而生成ezier曲面。曲面。5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系41v/*-3:定义输入个控制顶点坐标的函数定义输入个控制顶点坐标的函数-*/vvoid input(x0,y0,z0)vint x044,y044,z044;vv int i,j;vint x16=20,40,65,180,44,56,107,129,60,65,107,141,15,34,75,105;v int y16=45,190,247,140,65,185,186,115,30,198,230,135,80,220,285,170;v int z16=40,40,40,40,30,30,30,30,20,20,20,20,0,0,0,0;5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系42vfor(i=0;i=3;i+)v for(j=0;j=3;j+)v x0ij=xi+j;v v for(i=0;i=3;i+)v for(j=0;j=3;j+)v y0ij=yi+j;v v for(i=0;i=3;i+)v for(j=0;j=3;j+)v z0ij=zi+j;注意:个控制顶点注意:个控制顶点ij(i,j=0,1,2,3)的三个分量的三个分量坐标分别存放在坐标分别存放在x0,y0,z0三个二维数组中。三个二维数组中。5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系433.运行结果:绘制一三次运行结果:绘制一三次Bezier曲面如下图所示。曲面如下图所示。图图-三次三次Bezier曲面曲面5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系44(5)Bezier曲面的拼接曲面的拼接 v单个单个Bezier曲面可以通过以下两步生成:曲面可以通过以下两步生成:()固定()固定v,随着,随着u变化可得一簇变化可得一簇Bezier曲线;曲线;()固定()固定u,随着,随着v变化可得一簇变化可得一簇Bezier曲线;曲线;图图 参数曲面参数曲面Bezier曲面是由曲面是由Bezier曲线交织而成的曲面。曲线交织而成的曲面。5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系45v然而一个复杂的曲面往往不能用单一的然而一个复杂的曲面往往不能用单一的Bezier曲曲面来实现,而要用几块面来实现,而要用几块Bezier曲面拼接起来。下曲面拼接起来。下面我们简单讨论两张双三次面我们简单讨论两张双三次Bezier曲面的拼接。曲面的拼接。v如右图所示,图如右图所示,图中给出了两个相中给出了两个相邻的邻的Bezier曲面曲面片,分别给命名片,分别给命名为为P(u,v)Q(u,v)。图两个相邻的图两个相邻的Bezier曲面片曲面片5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系46v 如果对中所有的如果对中所有的v,若有,若有 就可以得到跨界位置处曲面函数的连续性这也就就可以得到跨界位置处曲面函数的连续性这也就意味着意味着:两曲面片间的一个公共边界需要两个特征两曲面片间的一个公共边界需要两个特征多边形之间的一个共同边界多边形多边形之间的一个共同边界多边形。图两个相邻的图两个相邻的Bezier曲面片曲面片5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系47v 如下图所示。图中如下图所示。图中 v 即表示两个曲面相接处共用的多边形边即表示两个曲面相接处共用的多边形边界。界。图图 Bezier曲面片间位置曲面片间位置P(u,v)Q(u,v)5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系48v 要使得跨界处一阶导数连续,即曲面在跨界处光滑,对中要使得跨界处一阶导数连续,即曲面在跨界处光滑,对中的所有的所有v,曲面片,曲面片(1)在在u=1的切平面必须与曲面片的切平面必须与曲面片(2)在在u=0的切平面重合,如下图所示,即边界处切平面重合。的切平面重合,如下图所示,即边界处切平面重合。图图 Bezier曲面片间位置曲面片间位置P(u,v)Q(u,v)注:对于这一点的注:对于这一点的讨论比较复杂,可讨论比较复杂,可以参阅有关文件,以参阅有关文件,这里我们不作重点这里我们不作重点叙述。叙述。下面仅讨论下面仅讨论实现一阶导数连续实现一阶导数连续的条件。的条件。5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系49 图图-Bezier曲面片的拼接曲面片的拼接P(u,v)Q(u,v)当两个双三次当两个双三次Bezier曲面拼接时,根据曲曲面拼接时,根据曲线的端点性质,可得线的端点性质,可得实现一阶导数连续的实现一阶导数连续的条件为:条件为:1.2.即要求两曲面片在边即要求两曲面片在边界线处的控制点重合,界线处的控制点重合,且重合点处的左右控且重合点处的左右控制点制点(共三点共三点)在一条直在一条直线上,如左图所示。线上,如左图所示。下面仅讨论实现一阶导数下面仅讨论实现一阶导数 连续的条件。连续的条件。讨论讨论5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系50二、二、B样条曲面样条曲面v 与如前所述的与如前所述的Bezier曲面的情况相类似,曲面的情况相类似,B样条曲面也是样条曲面也是B样条曲线的推广样条曲线的推广。因此,构造因此,构造B样条曲面的方法与构造样条曲面的方法与构造Bezier曲面的方法类似,也可以通过一个特征多边形网格曲面的方法类似,也可以通过一个特征多边形网格顶点来定义,只是基函数采用了顶点来定义,只是基函数采用了B样条基函数。样条基函数。(1)B样条曲面的定义样条曲面的定义 在三维空间中,给定在三维空间中,给定(n+1)X(m+1)个空间点个空间点Pij(i=0,1,n;j=0,1,m),称称nXm次参数曲面:次参数曲面:为为nXm次次B样条曲面。样条曲面。5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系51 其中:其中:是是 的控制顶点,的控制顶点,和和 为为B样条基函数,样条基函数,具体表示为:具体表示为:5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系52v如果用一系列直线段将相邻的点如果用一系列直线段将相邻的点 和和 一一连接起来组成一张空间网一一连接起来组成一张空间网格格,称这张网格为,称这张网格为nXm次次B样条曲面特征网格样条曲面特征网格。如下图所示。如下图所示为为3X3次次B样条曲面特征网格。样条曲面特征网格。图图-B样条曲面特征网格样条曲面特征网格 类似于类似于B样条曲线情况,特征样条曲线情况,特征网格框定了网格框定了B样条曲面样条曲面P(u,v)的大致形状;的大致形状;B样条曲面样条曲面P(u,v)是对特征网格的逼近。是对特征网格的逼近。注:注:同样,实际应用同样,实际应用B样条曲样条曲面时,面时,m和和n不宜过大,一般不宜过大,一般为不大于为不大于4,否则特征网格对,否则特征网格对曲面的控制会减弱。曲面的控制会减弱。5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系53(2)几个低次几个低次B样条曲面样条曲面 v1)双一次双一次B样条曲面样条曲面当当n=m=1时时,为双一次为双一次B样条曲面,给定样条曲面,给定(n+1)X(m+1)=2X 2=4个控制点:个控制点:P00、P01、P10、P11,则,则5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系54所以有双一次所以有双一次B样条曲面为:样条曲面为:图图 双一次双一次B样条曲面样条曲面u=0u=1v=0v=1v如左图所示,与双一次如左图所示,与双一次Bezier曲曲面一样,双一次面一样,双一次B样条曲面也是双样条曲面也是双曲抛物面(马鞍面)上的一块曲曲抛物面(马鞍面)上的一块曲面片。面片。当当u=0和和u=1时,代入上式得到的时,代入上式得到的两条边界为直线段;两条边界为直线段;当当v=0和和v=1时,得到的两条边界时,得到的两条边界也为直线段。也为直线段。所以双一次所以双一次B样条曲样条曲面由四条直线段包围而成面由四条直线段包围而成。5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系55v2)双二次双二次B样条曲面样条曲面当当n=m=2时时,为双二次为双二次B样条曲面,给定样条曲面,给定(n+1)X(m+1)=3X 3=9个控制点:个控制点:P00、P01、P02、P10、P11、P12、P20、P21、P22,则,则5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系56所以有:所以有:5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系57从而,双二次从而,双二次B样条曲面为:样条曲面为:5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系58v当当u和和v取取定定值值时时,曲曲面面的的v线和线和u线也都是抛物线。线也都是抛物线。v由由左左图图可可知知,曲曲面面不不经经过过任任何何一一个个网网格格顶顶点点。B样样条条曲曲面面四四个个角角点点不不在在给给定定位位置置上上,这这与与Bezier曲曲面面不不同同。如如果果网网格格向向外外扩扩展展,曲曲面面也也相相应应延延伸伸。由由于于二二次次B样样条条基基函函数数是是一一阶阶连连续续的的,两两双双二二次次B样样条条曲曲面面片片的的连连接接也也为为一一阶连续。阶连续。图图-双二次双二次B样条曲面样条曲面5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系59v3)双三次双三次B样条曲面样条曲面当当n=m=3时时,为双三次为双三次B样条曲面,给定样条曲面,给定(n+1)X(m+1)=4X 4=16个控制点:个控制点:Pij(i=0,1,2,3,j=0,1,2,3),则,则5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系60所以有:所以有:5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系61从而,双三次从而,双三次B样条曲面为:样条曲面为:5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系625.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系63图图-双三次双三次B样条曲面样条曲面注:双三次注:双三次B样条曲面与其特样条曲面与其特征网格关系如左图所示。双征网格关系如左图所示。双三次三次B样条曲面片四个角点不样条曲面片四个角点不在给定的点的位置上。如果在给定的点的位置上。如果将网格向外扩展,曲面也相将网格向外扩展,曲面也相应延伸,而且由于三次应延伸,而且由于三次B样条样条基函数是二阶连续的,所以基函数是二阶连续的,所以双三次双三次B样条曲面也二阶连续。样条曲面也二阶连续。与三次样条曲线相似,双三次样条曲面的优点是:与三次样条曲线相似,双三次样条曲面的优点是:极极其自然地解决了曲面片之间的二阶导数连续性问题。只要将其自然地解决了曲面片之间的二阶导数连续性问题。只要将曲面片的特征多边形网格顶点沿某一方向延伸一排,即可产曲面片的特征多边形网格顶点沿某一方向延伸一排,即可产生另一块曲面片生另一块曲面片。5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系64(3)绘制绘制B样条曲面及生成程序样条曲面及生成程序 例例:上机编程绘制一双三次:上机编程绘制一双三次B样条曲面。样条曲面。1.根据如下公式,编程绘制一根据如下公式,编程绘制一B样条曲面。样条曲面。5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系652.参考程序为:参考程序为:/*To generate a Bezier and 3B_Splline curved surface*/#includegraphics.h#includemath.h#includestdio.h#includeconio.h#includestdlib.h#define n 10main()int driver,mode;int i,k,m,j;int x0=300,y0=300;注意:此程序为绘制一双三次样注意:此程序为绘制一双三次样条曲面。为了比较,程序中也给出条曲面。为了比较,程序中也给出了画双三次了画双三次Bezier曲面的程序段,曲面的程序段,用户在运行程序时可以根据提示输用户在运行程序时可以根据提示输入(画入(画Bezier曲面)或(画曲面)或(画样条曲面),来选择所要绘制的曲样条曲面),来选择所要绘制的曲面。输出图形结果见后附录。面。输出图形结果见后附录。说明说明5.4 Bezier、B样条曲面的生成样条曲面的生成17 十一月 2024西安工程大学数学系66vint p443=12,145,50,24,120,50,45,117,50,65,140,50,24,65,34,56,45,34,87,56,34,99,75,34,43,120,20,65,98,20,87,100,20,111,115,20,15,160,0,34,120,0,55,135,0,75,170,0;v float u0,u1,u2,u3
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服