第五章Bezier曲面与B样条曲面_第1页
第五章Bezier曲面与B样条曲面_第2页
第五章Bezier曲面与B样条曲面_第3页
第五章Bezier曲面与B样条曲面_第4页
第五章Bezier曲面与B样条曲面_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

第5章

曲线与曲面的生成与计算4/23/2020西安工程大学数学系1曲面的参数表示Bezier、B样条曲线的生成曲面的参数表示Bezier、B样条曲面的生成·曲面和曲线一样,是计算机图形学中研究的重要内容之一,它们在实际工作中有着广泛的应用。在工程应用中,常用的自由曲面有很多,例如:Bezier曲面、B样条曲面、

Coons曲面等。

在计算机出现之前以及在计算几何没有很好地发展之前,对于一些工程实际中应用的复杂自由曲面,如飞机、轮船、汽车等几何外形的描述以及地形形状的表示,传统的处理办法是用一组或几组平行平面去截这个曲面,画出几组截交线来表示这个曲面。例如:船体就是用相互正交的三组平面截得的纵剖线、横剖线和水平线表示的;4/23/2020西安工程大学数学系2曲线与曲面的生成与计算·又例如:地面则是用一组水平面截得一组等高线表示的,这实际上是把曲面问题转化为曲线问题。这种处理办法称为曲线网格表示法,正是利用这些曲线网格来近似地表示自由曲面。如下所示:4/23/2020西安工程大学数学系3·因此,在产生一张曲面时,我们可以利用一系列的纵横交错且相互平行的样条曲线来构造曲面,如下图所示。图曲面的网格4/23/2020西安工程大学数学系4注:那么我们如何确定这张曲面上任意一点的位置呢?1.若这点恰好落在某一条网格线上,如右图中的A点,则就可以根据这条网格线的函数表示来计算这一点的位置(坐标);2.若这点不在任何网格线上,如右图中的B点,则无法计算该点的精确位置,只能用离该点最近的一条网格线上的点来近似表示。·对于不在网格上的点,若用离该点最近的一条网格线上的一点来近似表示,这会使得本来精度不很高的近似曲面在这一点的精度更低,所以用这种方法来产生曲面只能适合一部分精度不很高的场合。我们可以把平面里自由曲线生成方法加以推广到曲面的生成问题上,借助于曲面的解析表达式来处理有关曲面问题。曲面的种类繁多,为了便于讨论,将曲面分为两类:

一类是规则曲面,如柱、锥、椭球、环、双曲面、抛物面等,它可用参数方程解析地描述;

另一类是不规则曲面,如Coons曲面、Bezier曲面、B样条曲面等,这是构造某种曲面的方程问题。本节我们主要讨论Bezier曲面、B样条曲面的生成与计算。4/23/2020西安工程大学数学系5·

在计算机绘图中常用参数形式表示曲面,自由曲面由曲面片拼接而成,而曲面片又是由曲线构成,如下图所示:5.3

曲面的参数表示图曲面片4/23/2020西安工程大学数学系6·

三维空间任意曲面的图形如左图所示,曲面有两族参数曲线,或称为坐标曲线,通常简称

u线和v线。图-参数曲面4/23/2020西安工程大学数学系75.3

曲面的参数表示·当时,代入式子得:上式则是曲面上另一条参数曲线·

时,代入式子得:上式是曲面上一条参数曲线,即一条v线。图-参数曲面4/23/2020西安工程大学数学系8即参数u为定值的曲面上的线。,即一条u线。即参数v为定值的曲面上的线。5.3

曲面的参数表示的交点则是。·上述两条参数曲线事实上,用图-参数曲面和代入式子也得到曲面上同一点位置矢量,即:5.3

曲面的参数表示4/23/2020西安工程大学数学系9平面片·

例如:如下图的平面片方程为:·

上式中矢量

为平面上一点的位置矢量,

和为常矢量,且

不平行于

,该平面片是由矢量

张成的四边形。eg:当u=1/3,v=1/2时对应平面片中一点:r(1/3,1/2)=r0+a/3+b/24/23/2020西安工程大学数学系105.3

曲面的参数表示·

又如下图所示,以固定方向长度为

的直线段作为母线沿给定一条空间曲线移动生成一个柱面,其方程为:上式中是沿母线方向的常矢量。直线段空间曲线柱面5.3

曲面的参数表示4/23/2020西安工程大学数学系115.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系12下面主要介绍工程上流行应用的Bezier曲面和B样条曲面一、Bezier(贝塞尔)曲面如前所述,Bezier曲线是一条与控制多边形顶点位置有严格关联关系的曲线,Bezier曲线形状趋向于特征多边形的形状,而且阶数由控制多边形顶点的个数决定。Bezier曲面是由Bezier曲线拓广而来,它也是以

Bernstein函数作为基函数,是由Bernstein基函数构造空间点阵列的位置来控制的。Bezier曲线是由特征多边形控制的;Bezier曲面则是由特

征网格顶点控制的。二者在表达式上也十分相似。5.4

Bezier、B样条曲面的生成(1)

Bezier曲面的定义在三维空间中,给定(n+1)X(m+1)个空间点Pij(i=0,1,…,n;

j=0,1,…,m),称nXm次参数曲面:为n×m次Bezier曲面。和为Bernstein基是

的控制顶点,函数,具体表示为:5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系13·如果用一系列直线段将相邻的点和

一一连接起来组成一张空间网格

,称这张网格为nXm次曲面特征网格。如下图所示为3X3次曲面特征网格。类似于Bezier曲线情况,特征网格框定了Bezier曲面P(u,v)的大致形状;Bezier曲面P(u,v)是对特征网格的逼近。注:实际应用Bezier曲面时,m和n不宜过大,一般为不大于4,否则特征网格对曲面的控制会减弱。图Bezier曲面特征网格4/23/2020西安工程大学数学系145.4

Bezier、B样条曲面的生成·

Bezier曲面的矩阵表示形式为:5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系15(2)

Bezier曲面的性质·

Bezier曲面有类似于Bezier曲线的性质。·

性质1:端点位置由于说明是曲面的四个端点,如左图所示的3X

3次曲

面的4个端点。图Bezier曲面端点的切平面和边界4/23/2020西安工程大学数学系165.4

Bezier、B样条曲面的生成·

性质2:边界线位置Bezier曲面的四条边界线分别是以为控制多边形的Bezier曲线。图Bezier曲面端点的切平面和边界即:Bezier曲面特征网格最外一圈顶点定义Bezier曲面的四条边界4/23/2020西安工程大学数学系175.4

Bezier、B样条曲面的生成图

Bezier曲面端点的切平面和边界·

性质3:端点的切平面由计算可知,三角中打上斜线的三角形)所在的平面分别在点5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系18·

性质4:凸包性曲面P(u,v)位于其控制顶点Pij(i=0,1,2,…,n;j=0,1,2,的凸包内。如下图所示:图Bezier曲面的凸包性5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系19·

性质5:几何不变性曲面P(u,v)的形状和位置与坐标系选择无关,仅仅和点位置有关。(3)几个低次Bezier曲面·

由Bezier曲面的定义我们可以推出一次、二次以及三次Bezier曲面的数学表达式工程上应用较多的是三次Bezier曲面。下面依次讨论:5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系20·

1)双一次Bezier曲面

当n=m=1时,为双一次Bezier曲面,给定

(n+1)X(m+1)=2X2=4个控制点:P00、P01、P10、P11,则5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系21所以有:u=0·其图形表示如左图所示,可以证明它是一个双曲抛物面(马鞍面)上的一块曲面片。u=1➢当u=0和u=1时,代入上式得到的两条边界为直线段;

当v=0和v=1时,得到的两条边界也为直线段。所以双一次Bezier曲面由四条直线段包围而成。v=0图

双一次Bezier曲面v=15.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系22·

2)双二次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样条曲面的生成4/23/2020西安工程大学数学系23所以有:从而4/23/2020西安工程大学数学系245.4

Bezier、B样条曲面的生成图双二次Bezier曲面·其图形表示如左图所示,可以知道:√

当u取定值时,是关于v的二次参数曲线;√

同样,当v取定值时,是关于u的二次参数曲线;注:P00、P02、P20、P22

是曲面上的四个端点4/23/2020西安工程大学数学系255.4

Bezier、B样条曲面的生成

当u=0和u=1时,代入上式得到的两条边界为抛物线段;

当v=0和v=1时,另外两条边界也为抛物线段。所以双二次

Bezier曲面由4条抛物线段包

围而成,如左图所示。显然,中间的一个顶点的变化对边界曲线不产生影响,这意味着在周边8点不变的情况下,适当调整点P11就可以控制曲面形状(凹凸性)。5.4

Bezier、B样条曲面的生成图双二次Bezier曲面4/23/2020西安工程大学数学系26·3)双三次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样条曲面的生成4/23/2020西安工程大学数学系27所以有:从而5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系285.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系295.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系30·双三次Bezier曲面片的图形如左图所示。1.矩阵P表示双三次Bezier曲面片特征多面体16个控制顶点的位置向量。显然这16个控制点中只有4个顶点P00、P03、P30和P33位于Bezier曲面上。图双三次Bezier曲面4/23/2020西安工程大学数学系315.4

Bezier、B样条曲面的生成2.P矩阵中周围的12个控制点定义了4条三次

Bezier曲线,即边界曲

线。其余的4个点P11、P21、P12和P22与边界曲线无关,但影响曲面片的形状,即适当调整这4个点就可以控制曲面形状(凹凸性)。图双三次Bezier曲面5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系32(4)绘制Bezier曲面及生成程序例:上机编程绘制一三次Bezier曲面,并输出其运行结果。1.根据如下公式,编程绘制Bezier曲面。5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系332.参考程序为:

#define

n

15main(){int

px,py,pz,i,j;int

x[n+1][n+1],y[n+1][n+1],x0[4][4],y0[4][4],z0[4float

a[4],c[4],u,v,delta;void

draw();

/*定义画Bezier曲面的子函数*/void

input();

/*定义输入16个控制顶点坐标的子函数input(x0,y0,z0);5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系34delta=1.0/n;/*参数u、v对区间[0,1]的分割精度*/·

for(j=0;j<=n;j+=1){v=delta*j;c[0]=(1-v)*(1-v)*(1-v);

c[1]=3*v*(1-v)*(1-vc[2]=3*v*v*(1-v);

c[3]=v*v*v;for(i=0;i<=n;i+=1){u=delta*i;·

a[0]=(1-u)*(1-u)*(1-u); a[1]=3*u*(1-u)*(1·

a[2]=3*u*u*(1-u);

a[3]=u*u*u5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系35·

for(j=0;j<=n;j+=1)·

{for(i=0;i<=n;i+=1)}printf("output

the

x[i][j]注::\n因"为)屏;幕显示器是一二维平面区域。所以在二维平面里画Bezier曲面三维立体图,应将三维空间立体坐标按某种变换转化为二维平面·

printf("x=%d\t",x[i][j])区;域坐标。5.4

Bezier、B样条曲面的生成px=mutipul(a,x0,c);

py=mutipul(a,y0,c);pz=mutipul(a,z0,c

);x[i][j]=(py*0.7071-px*0.7071+200)*2-300;y[i][j]=(py*0.4082-pz*0.8165+px*0.4082+200)*}4/23/2020西安工程大学数学系36·

printf("\n");/*根据点坐标X,Y画三次Beziergetch();}printf("output

the

y[i][j]:注\n意"):;输出三次Bfor(j=0;j<=n;j+=1)·

{for(i=0;i<=n;i+=1)·

printf("y=%d\t",y[i][j]);printf("\n");getch();}draw(x,y);/getch();closegraph();}4/23/2020西安工程大学数学系37ezier曲面上共(n+1)X(n+1)个点的XY坐标值5.4

Bezier、B样条曲面的生成·

/*-------------1:计算曲面上点P(u,v)的值---*/int

mutipul(a,b,c)float

a[4],c[4];int

b[4][4];{

int

d[4],p,i,j,t;·

for(j=0;j<=3;j+=1){·

d[j]=0;·

for(i=0;i<=3;i+=1){t=a[i]*b[i][j];d[j]=d[j}·

p=0;·

for(i=0;i<=3;i+=1){t=d[i]*c[i];p=p+t;}return

p;

}例如:px=mutipul(a,x0,c);5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系38/*-------------2:定义画Bezier曲面的子函数------*/void

draw(x,y)int

x[n+1][n+1],y[n+1][n+1];{

int

i,j;int

gdriver=DETECT,gmode;initgraph(&gdriver,&gmode,"D:\\TC");setbkcolor(0);cleardevice();setcolor(15);printf(“Bezier

curved

surface\n\t");for(j=0;j<=n;j+=1){·

for(i=0;i<=n-1;i+=1)4/23/2020西安工程大学数学系395.4

Bezier、B样条曲面的生成·

lineto(x[i+1][j],y[i+1][j]);}}·

for(i=0;i<=n;i+=1){·

for(j=0;j<=n-1;j+=1)·

{

moveto(x[i][j],y[i][j]);·

lineto(x[i][j+1],y[i][j+1]);}}}注:根据曲面上点的坐标,用画直线的函数lineto连接曲面上相邻的两点,从而生成Bezier曲面。4/23/2020西安工程大学数学系405.4

Bezier、B样条曲面的生成·

{

moveto(x[i][j],y[i][j]);*/void

input(x0,y0,z0)int

x0[4][4],y0[4][4],z0[4][4];{int

i,j;intx[16]={20,40,65,180,44,56,107,129,60,65,107141,15,34,75,105};inty[16]={45,190,247,140,65,185,186,115,30,198

230,135,80,220,285,170};intz[16]={40,40,40,40,30,30,30,30,20,20,20,20,0,0,0};4/23/2020西安工程大学数学系415.4

Bezier、B样条曲面的生成·

/*------------3:定义输入16个控制顶点坐标的函·

for(i=0;i<=3;i++)·

{

for(j=0;j<=3;j++)·

y0[i][j]=y[i+j];}·

for(i=0;i<=3;i++){

for(j=0;j<=3;j++)·

z0[i][j]=z[i+j];

}

}{for(j=0;j<=3;j++)注意:16个控制顶点Pij·

x0[i][j]=x[i+j];}·

for(i=0;i<=3;i++)4/23/2020西安工程大学数学系42(i,j=0,1,2,3)的三个分量坐标分别存放在x0,y0,z0三个二维数组中。5.4

Bezier、B样条曲面的生成图-

三次Bezier曲面4/23/2020西安工程大学数学系435.4

Bezier、B样条曲面的生成3.运行结果:绘制一三次Bezier曲面如下图所示。(5)Bezier曲面的拼接·

单个Bezier曲面可以通过以下两步生成:(1)固定v,随着u变化可得一簇Bezier曲线;(2)固定u,随着v变化可得一簇Bezier曲线;图参数曲面Bezier曲面是由Bezier曲线交织而成的曲面。4/23/2020西安工程大学数学系445.4

Bezier、B样条曲面的生成·

然而一个复杂的曲面往往不能用单一的Bezier曲面来实现,而要用几块Bezier曲面拼接起来。下面我们简单讨论两张双三次Bezier曲面的拼接。·

如右图所示,图

中给出了两个相邻的Bezier曲面

片,分别给命名为P(u,v)Q(u,v)。图

两个相邻的Bezier曲面片5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系45·

如果对

中所有的v,若有就可以得到跨界位置处曲面函数的连续性.这也就意味着:两曲面片间的一个公共边界需要两个特征多边形之间的一个共同边界多边形。图

两个相邻的Bezier曲面片5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系46·

如下图所示。图中·即表示两个曲面相接处共用的多边形边界。图

Bezier曲面片间位置P(u

,v)Q(u,v

)5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系47·

要使得跨界处一阶导数连续,即曲面在跨界处光滑,对中的所有v,曲面片(1)在u=1的切平面必须与曲面片(2)在u=0的切平面重合,如下图所示,即边界处切平面重合。图Bezier曲面片间位置P(u

,v)Q(u,v

)注:对于这一点的讨论比较复杂,可以参阅有关文件,这里我们不作重点叙述。下面仅讨论实现一阶导数连续的条件。5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系48图-Bezier曲面片的拼接P(u

,v)Q(u,v

)曲面拼接时,根据曲线的端点性质,可得实现一阶导数连续的条件为:1.2.即要求两曲面片在边

界线处的控制点重合,且重合点处的左右控

制点(共三点)在一条直线上,如左图所示。下面仅讨论实现一阶导数连续的条件。当两个双三次Bezier讨论4/23/2020西安工程大学数学系495.4

Bezier、B样条曲面的生成二、B样条曲面·

与如前所述的Bezier曲面的情况相类似,B样条曲面也是

B样条曲线的推广。因此,构造B样条曲面的方法与构造

Bezier曲面的方法类似,也可以通过一个特征多边形网格顶点来定义,只是基函数采用了B样条基函数。(1)

B样条曲面的定义在三维空间中,给定(n+1)X(m+1)个空间点Pij

(i=0,1,…,nj=0,1,…,m),称nXm次参数曲面:为nXm次B样条曲面。4/23/2020西安工程大学数学系505.4

Bezier、B样条曲面的生成的控制顶点,和为B样条基函数,其中:是具体表示为:5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系51·如果用一系列直线段将相邻的点和

一一连接起来组成一张空间网格

,称这张网格为nXm次B样条曲面特征网格。如下图所示为3X3次B样条曲面特征网格。类似于B样条曲线情况,特征网格框定了B样条曲面P(u,v)的大致形状;B样条曲面P(u,v)是对特征网格的逼近。注:同样,实际应用B样条曲面时,m和n不宜过大,一般为不大于4,否则特征网格对曲面的控制会减弱。图-B样条曲面特征网格5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系52(2)几个低次B样条曲面·

1)双一次B样条曲面

当n=m=1时,为双一次B样条曲面,给定(n+1)X(m+1)=2X2=4个控制点:P00、P01、P10、P11,则5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系53所以有双一次B样条曲面为:u=0u=1v=0图双一次B样条曲面v=1·如左图所示,与双一次Bezier曲面一样,双一次B样条曲面也是双曲抛物面(马鞍面)上的一块曲面片。

当u=0和u=1时,代入上式得到的两条边界为直线段;

当v=0和v=1时,得到的两条边界也为直线段。所以双一次B样条曲面由四条直线段包围而成。4/23/2020西安工程大学数学系545.4

Bezier、B样条曲面的生成·

2)双二次B样条曲面

当n=m=2时,为双二次B样条曲面,给定(n+1)X(m+1)=3X3=9个控制点:P00、P01、P02、P10、P11

、P12、P20、P21

、P22

,则5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系55所以有:5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系56从而,双二次B样条曲面为:4/23/2020西安工程大学数学系575.4

Bezier、B样条曲面的生成当u和v取定值时,曲面的v线和u线也都是抛物线。由左图可知,曲面不经过任何一个网格顶点。B样条曲面四个角点不在给定位置上,这与Bezier曲面不同。如果网格向外扩展,曲面也相应延伸。由于二次B样条基函数是一阶连续的,两双二次B样条曲面片的连接也为一阶连续。图-双二次B样条曲面5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系58·

3)双三次B样条曲面

当n=m=3时,为双三次B样条曲面,给定(n+1)X(m+1)=4X4=16个控制点:Pij

(i=0,1,2,3,j=0,1,2,3),则5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系59所以有:5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系60从而,双三次B样条曲面为:4/23/2020西安工程大学数学系615.4

Bezier、B样条曲面的生成5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系625.4

Bezier、B样条曲面的生成

注:双三次B样条曲面与其特征网格关系如左图所示。双三次B样条曲面片四个角点不在给定的点的位置上。如果将网格向外扩展,曲面也相应延伸,而且由于三次B样条基函数是二阶连续的,所以双三次B样条曲面也二阶连续。图-双三次B样条曲面与三次B样条曲线相似,双三次B样条曲面的优点是:极其自然地解决了曲面片之间的二阶导数连续性问题。只要将曲面片的特征多边形网格顶点沿某一方向延伸一排,即可产生另一块曲面片。4/23/2020西安工程大学数学系63(3)绘制B样条曲面及生成程序例:上机编程绘制一双三次B样条曲面。1.根据如下公式,编程绘制一B样条曲面。5.4

Bezier、B样条曲面的生成4/23/2020西安工程大学数学系642.参考程序为:/*To

generate

a

Bezier

and

3B_Splline

curved

surface

*#include"graphics.h"#include"math.h"#include"stdio.h"#include"conio.h"#include"stdlib.h"#define

n

10main(){int

driver,mode;int

i,k,m,j;int

x0=300,y0=300;注意:此程序为绘制一双三次B样条曲面。为了比较,程序中也给出了画双三次Bezier曲面的程序段,用户在运行程序时可以根据提示输入0(画Bezier曲面)或1(画B样条曲面),来选择所要绘制的曲面。输出图形结果见后附录。说明4/23/2020西安工程大学数学系655.4

Bezier、B样条曲面的生成·

int

p[4][4][3]=4/23/2020西安工程大学数学系66{{{12,145,50},{24,120,50},{45,117,50},{65,140{{24,65,34},{56,45,34},{87,56,34},{99,75,34{{43,120,20},{65,98,20},{87,100,20},{111,115,{{15,160,0},{34,120,0},{55,135,0},{75,170,0}}·

float

u0,u1,u2,u3,v0,v1,v2,v3;·

float

q10,q11,q12,q13,du,dv;·

float

q[n+1][n+1][3],q20[3],q21[3],q22[3],q2·q30[3],q31[3],q32[3],q33[3];float

x,y;printf("input

j:(0---bezier,

1---B_spline)\n"5.4

Bezier、B样条曲面的生成·

scanf("%d",&j);driver=DETECT;mode=0;initgraph(&driver,&mode,"D:\\TC");setbkcolor(1);setcolor(15);for(i=0;i<=3;i++)·

{for(k=0;k<=3;k++){x=(-0.7071*p[i][k][0]+0.7071*p[i][k][1]+200)*y=(0.4082*p[i][k][0]+0.4082*p[i][k][1]0.8165*p

2]+200)*2-300;if(k==0)moveto(x,y);

lineto(x,y);}}4/23/2020西安工程大学数学系675.4

Bezier、B样条曲面的生成·

for(i=0;i<=3;i++)·

{for(k=0;k<=3;k++)4/23/2020西安工程大学数学系68·

{x=(-0.7071*p[k][i][0]+0.7071*p[k][i][1]+20300;y=(0.4082*p[k][i][0]+0.4082*p[k][i][1]0.8165*·2]+200)*2-300;if(k==0)moveto(x,y);lineto(x,y);·

du=dv=1.0/n;·

for(i=0;i<=n;i++){u0=(i*du)*(i*du)*(i*du);u1=(i*du)*(i*du);u2=3=1;5.4

Bezier、B样条曲面的生成·

if(j==0)4/23/2020西安工程大学数学系69·

{q10=u0*(-1)+u1*3+u2*(-3)+u3*1;·

q11=u0*3+u1*(-6)+u2*3;·q12=u0*(-3)+u1*3;

q13=u0*1;}if(j==1){

q10=(u0*(-1)+u1*3+u2*(-3)+u3*1)/6;·

q11=(u0*3+u1*(-6)+u3*4)/6;q12=(u0*(-3)+u1*3+u2*3+u3*1)/6;q13=(u0*1)/6for(k=0;k<=2;k++){

q20[k]=q10*p[0][0][k]+q11*p[1][0][k]+q12*][0][k]

+q13*p[3][0][k];q21[k]=q10*p[0][1][k]+q11*p[1][1][k]+q12*p[1][k]

+q13*p[3]

温馨提示

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

评论

0/150

提交评论