第4章-曲线与曲面课件_第1页
第4章-曲线与曲面课件_第2页
第4章-曲线与曲面课件_第3页
第4章-曲线与曲面课件_第4页
第4章-曲线与曲面课件_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

第4章曲线与曲面4.1曲线和曲面基础4.2二次插值样条曲线4.3Bezier曲线和曲面作业4.4B样条曲线和曲面4.1

曲线和曲面基础一、曲线和曲面的分类1、曲线分类:规则曲线:可用函数或参数方程表示;不规则曲线:将给定的离散数据点用曲线拟合来逼近。2、曲面分类:规则曲面:可用函数或参数方程表示;不规则曲面:采用分段的参数方程来表示。4.1

曲线和曲面基础二、曲线和曲面方程的表示形式参数表示:曲线(曲面)上任意一点的坐标都表示成给定参数的函数。设t为参数,则有:(1)平面曲线上任意点P(x,y)表示为:x=x(t)

y=y(t)(2)空间曲线上任意点P(x,y,z)表示为:x=x(t)

y=y(t)

z=z(t)t∈[0,1]t∈[0,1]4.1

曲线和曲面基础参数方程表示的优点有更大的自由度来控制曲线或曲面的形状。例:平面内的一条三次曲线4.1

曲线和曲面基础P(t)

=

[x(t)y(t)](二维)P(t)

=

[x(t)y(t)z(t)]

(三维)三、常用术语位置矢量对于参数曲线上任一点P的位置矢量(即其坐标),

用矢量P(t)表示:切矢量(一阶导数)对于参数曲线上任一点P的切矢量,用矢量P’(t)表示:P’(t)

=

[x’(t)P’(t)

=

[x’(t)y’(t)]y’(t)(二维)(三维)z’(t)

]4.1

曲线和曲面基础型值点通过测量或计算得到的曲线或曲面上少量描述其几何形状的数据点。数量有限。控制点用来控制或调整曲线或曲面形状的特殊点,曲线段或曲面本身不一定通过该控制点。插值、逼近和拟合插值:要求建立的曲线或曲面数学模型,严格通过已知的每一个型值点。4.1

曲线和曲面基础逼近:建立的曲线或曲面数学模型只是近似地接近已知的型值点。拟合:是指在曲线或曲面的设计过程中,用插值或逼近方法使生成的曲线达到某些设计要求。4.1

曲线和曲面基础四、参数表示的基本形式注意:以三维空间中的三次参数曲线为例(1)代数形式x(t)

=

a3xt3

+

a2xt2

+

a1xt

+

a0xy(t)

=

a3yt3

+

a2yt2

+

a1yt

+

a0yz(t)

=

a3zt3

+

a2zt2

+

a1zt

+

a0zt∈[0,1]4.1

曲线和曲面基础其矢量表示式为:*P(t)

=

a3t3

+

a2t2

+

a1t

+

a0

t∈[0,

1]其中,a3、a2、a1、a0是其代数系数矢量,P(t)

是三次参数曲线任意一点P的位置矢量。(2)几何形式用端点处的位置矢量和切矢量来描述参数曲线。端点处的位置矢量:P(0)和P(1)端点处的切矢量:P’(0)和P’(1)4.1

曲线和曲面基础P(t)

=a3t3

+

a2t2

+

a1t

+

a0P’(t)

=3a3t2

+

2a2t

+

a1P(0)=a0P(1)

=

a3+a2+a1+

a0P’(0)=a1P’(1)=

3a3+2a2+a1a0

=

P(0)a1

=

P’(0)a2

=

-3P(0)

+

3P(1)-

2P’(0)–

P’(1)a3

=

2P(0)

-2P(1)+

P’(0)+

P’(1)4.1

曲线和曲面基础令P0=P(0),

P1=P(1),

P’0=P’(0),

P’1=P’(1),P(t)=(2t3-3t2+1)P0+(-2t3+3t2)P1+(t3-2t2+t)P’0+(t3-t2)P’1t∈[0,1]令F0=2t3-3t2+1,

F1=-2t3+3t2,G0=t3-2t2+t,

G1=t3-t2,P(t)=F0P0+

F1

P1+G0P’0+G1P’1调和函数:F0

、F1、G0、G1t∈[0,1]4.1

曲线和曲面基础五、曲线段之间的连续性方法一:在连接点处设置参数连续性条件。(1)0阶参数连续性(C0连续):指前一段曲线的终点与后一段曲线的起点相同。(2)1阶参数连续性(C1连续):指两个相邻曲线段在连接点处有相同的一阶导数。(3)2阶参数连续性(

C2连续):指两个相邻曲线段在连接处有相同的一阶和二阶导数。4.1

曲线和曲面基础方法二:在连接点处设置几何连续性条件。(1)0阶几何连续性(G0连续):两个相邻曲线段在连接点处有相同的坐标。与C0相同。(2)1阶几何连续性(G1

连续):一阶导数在两个相邻曲线段的连接点处成比例,但不一定相等。(3)2阶几何连续性(G2

连续):两个相邻曲线段在连接点处的一阶和二阶导数均成比例。4.2

二次插值样条曲线4.2.1

二次插值样条曲线的数学表达式采用矢量表达式来表示参数化的二次曲线:设二次样条曲线过P1,P2,P3三个点,确定A1

、A2

、A3三个系数的三个独立条件为:①以P1为始点。即当t

=0时,曲线过P1点;②以P3为终点。即当t

=1时,曲线过P3点;③当t

=0.5时,曲线过P2点,且切矢量等于P3–P1。P(t)

=

A1

+

A2t

+

A3t

2(0≤t≤1)4.2

二次插值样条曲线QAP1t=0P2’P2t=0.5P3t=1过3点定义的二次曲线4.2

二次插值样条曲线根据3个设定条件,有:t=0:t=1:P(0)=

A1

=P1P(1)=

A1+A2十A3

=P3t

=

0.5;P(0.5)=

A1+0.5A2+0.25A3

=

P2A1

=

P1A2

=

4P2

P3

3P1A3

=

2P1+2P3

4P24.2

二次插值样条曲线P(t)

=

A1

+

A2t+

A3t

2=

P1

+(4P2

P3

3P1)

t

+

(2P1+2P3

4P2)

t

2=

(2t

2

3t+

1)P1

+

(4t

4t

2)P2

+(2t

2

–t)

P3(0≤t≤1)4.2

二次插值样条曲线4.2.2

二次插值样条曲线的加权合成有一离散型值点列P1

~

Pn,每经过相邻三点作出一段二次样条曲线,对于n个型值点,共可以作出n–2条二次样条曲线段。P1P2P3P4P5Pn-2Pn-1Pn4.2

二次插值样条曲线第i条曲线段经过Pi,Pi+1,Pi+2三点,表达式为:Si

(ti)

=(2ti2

3ti

+1)Pi

+

(4ti

4ti

)Pi+1

+

(2ti

ti)Pi+22

2(0≤ti≤1)第i+1条曲线段经过Pi+1,Pi+2和Pi+3三点,表达式为:Si+1(ti+1)

=

(2ti+12

–3ti+1+1)Pi+1+

(4ti+1–4ti+12)Pi+2+

(2ti+12

ti+1)Pi+3(0≤ti≤1)PiPi+1Pi+2Pi+3SiSi+14.2

二次插值样条曲线搭接区间:Si和Si+1两条曲线段,在Pi+1和Pi+2两点之间的部分。提出问题:搭接区间内的Si和Si+1不可能自然地重合成一条曲线。PiPi+1Pi+2Pi+3Si解决方法:加权合成。即在Si和Si+1的搭接区间内,结合成一条曲线。Si+14.2

二次插值样条曲线加权合成的步骤①分配两个权函数f(T)和g(T):f(T)=

l

–Tg(T)=T(0≤T≤1)加权合成后的曲线为Pi+1(t),则:Pi+1(t)

=

f(T)·Si

(ti)

+

g(T)·Si+1(ti+1)=

(1–T)·Si

(ti)

+

T·Si+1(ti+1)4.2

二次插值样条曲线②统一参数T、ti和ti+1曲线段Si

(ti)在搭接区间内,参数ti的取值范围:0.5≤

ti≤1曲线段Si+1(ti+1)在搭接区间内,参数ti+1的取值范围:0≤ti+1≤0.5权函数f(T)和g(T)中,参数T的取值范围:0≤T≤14.2

二次插值样条曲线设t作为统一后的参数,设定取值范围为:0≤t≤0.5则原有三个参数T、ti

和ti+1可统一形式为:T=

2tti

=t+

0.5ti+1

=

t③改写加权合成后的曲线Pi+1(t)0≤t≤0.5Pi+1(t)

=

(1–T)·Si

(ti)

+

T·Si+1(ti+1)=

(1–2t)·Si

(t+

0.5)+2t·Si+1(t)4.2

二次插值样条曲Si

(t+0.5)

线=(2t2

–t)Pi

+(1–4t

2)Pi+1+(2t2

+t)Pi+2Si+1(t)

=

(2t

2

–3t

+1)Pi+1+

(4t

4t

2)Pi+2+

(2t

2

t)Pi+3加权合成后的曲线Pi+1(t)为:*Pi+1(t)

=

(–4t

3

+

4t

2

–t)Pi

+

(13t

3–10t

2

+1)Pi+1+(–12t

3

+

8t

2

+

t)Pi+2+

(4t

3

2t

2)Pi+3(i=

1,2,…,

n–3)

(0≤t≤0.5)总结:每相邻的四个点可以决定中间的一段二次样条曲线。4.2

二次插值样条曲线PiPi+2Pi+3Pi+1(t)Pi+14个点决定中间的一段样条曲线4.2

二次插值样条曲线P0P14.2.3

二次插值样条曲线的端点条件根据加权合成,全部型值点P1

~

Pn,只能得到n–3段曲线。而n个型值点之间实际应有n–1个曲线段。提出问题:由于缺乏连续相邻的四点无法画出首、尾两段曲线P1P2和Pn–1Pn

。P2Pn-1PnPn+14.2

二次插值样条曲线解决方法在原型值点列P1

~

Pn的两端各加一个点P0和Pn+1提出问题:如何补充点P0和Pn+1解决方法:设置端点条件(3种方法)①已知两端的切矢量P'1和P'nP'1

=

P2–P0P'n

=

Pn+1–Pn–1∴

P0

=P2–P'1∴

Pn+1

=

Pn–1+

P'n即可以确定辅助点P0和Pn+1的坐标位置。4.2

二次插值样条曲线②自由端条件让所补的点P0

和Pn+1与原两端点P1

和Pn分别重合,即:P0

=P1

,Pn+1

=Pn③形成封闭曲线用n个型值点形成封闭曲线,要生成n段曲线段。先让首尾两点重合,然后各向前后延长一点,即:P0

=

PnPn+1

=

P1Pn+2

=

P24.2

二次插值样条曲线二次样条曲线插值算法程序:void parspl(int

p[

][2],int

n,int

k,int

e){

//P为型值点的坐标数组,n为型值点数,k为插值数,即是把参变量t区间细分的份数。int

x,y,i,j,m=n;float

t1,t2,t3,t,a,b,c,d;if(e==1)//自由端{ p[0][0]

=

p[1][0];p[0][1]

=

p[1][1];p[n+1][0]

=

p[n][0];p[n+1][1]

=

p[n][1];}4.2

二次插值样条曲线else //画封闭曲线{p[0][0]

=

p[n][0];p[m][0]

=

p[1][0];p[0][1]

=

p[n][1];p[m][1]

=

p[1][1];p[m+1][0]

=

p[2][0];p[m+1][1]

=

p[2][1];}t=0.5/k;Moveto(p[1][0],p[1][1]);4.2

二次插值样条曲线for(i=0;i<m–1;i++){

for(j=1;j<k;j++){

t1=j*t;

t2=t1*t1;a=4.0*t2–t1–4.0*t3;t3=t2*t1;b=1.0–10.0*t2+12.0*t3;c=t1+8.0*t2–12.0*t3;

d=4.0*t3–2.0*t2;x=a*p[i][0]+b*p[i+1][0]+c*p[i+2][0]+d*p[i+3][0];y=a*p[i][1]+b*p[i+1][1]+c*p[i+2][1]+d*p[i+3][1];lineto(x,

y);}//内层for循环结束

lineto(p[i+2][0],

p[i+2][1]);}//外层for循环结束}一、Bezier4.3

Bezier曲线和曲面曲线诞生1、法国Bezier(贝 尔);2、一种新的参数曲线逼近方法;3、适用于外形设计的特殊要求。Bezier曲线的形状特点1、由特征多边形

(贝 尔多边形) 唯一地定义。4.3

Bezier曲线和曲面2、特征多边形各顶点中,第一点和最后一点在曲线上,其余顶点用来定义曲线的导数、阶次和形状。3、特征多边形的第一条边和最后一条边分别和曲线在起点和终点处相切。4、曲线的形状趋向于特征多边形的形状。改变特征多边形的顶点位置,曲线形状随之变化。4.3

Bezier曲线和曲面P0P1P2P3P0P1P2P3P0P1P2P3Bezier曲线与特征多边形的关系4.3

Bezier曲线和曲面Bezier曲线的数学表达式n+1个顶点定义一个n

次的Bezier曲线,其参数向量表达式为:①Pi

为特征多边形各顶点的位置矢量;②Bi,n(t)为伯恩斯坦(Bernstein)基函数(调和函数)。4.3

Bezier曲线和曲面伯恩斯坦(Bernstein)基函数的性质①正性:②对称性:③递推性:4.3

Bezier曲线和曲面Bezier曲线的性质1、端点性质(1)端点位置矢量P(0)和P(1)注意:当i=0、t=0时,00

=1、0!=1。4.3

Bezier曲线和曲面即

P(0)=P0

P(1)=Pn*说明:Bezier曲线通过特征多边形的起点和终点。4.3

Bezier曲线和曲面(2)端点切矢量P’(0)和P’(1)4.3

Bezier曲线和曲面即

P’(0)

=

n(P1-P0)

P’(1)=

n(Pn-Pn-1

)*说明:Bezier曲线在两端点处的切线方向与特征多边形的第一条边和最后一条边相一致。4.3

Bezier曲线和曲面2、对称性保持原Bezier曲线的全部控制点Pi位置不变,而颠倒其次序,得到新的特征多边形顶点,即Pi*=Pn-i,(i=0,1,…,n),则新Bezier曲线形状不变,只是走向相反。4.3

Bezier曲线和曲面一次Bezier曲线(n=1,两个特征控制点)两点P0,P1定义一条一次Bezier曲线。表达式为:(0≤t≤1)矩阵形式为:4.3

Bezier曲线和曲面一次Bezier曲线是一条从P0

到P1

的直线段。P0P14.3

Bezier曲线和曲面二次Bezier曲线(n=2

,三个特征控制点

)三顶点P0,P1,P2定义一条二次Bezier曲线。其表达式为:P(t)=

(1–t)2P0

+

2t(1–t)P1

+

t

2P2

(0≤t≤1)矩阵形式为:4.3

Bezier曲线和曲二次Bezier面曲线在起点P

处的切矢量:0P’(0)

=

2(P1–P0)终点P2处的切矢量:P’(1)

=

2(P2–P1)当t

=1/2时:说明:二次Bezier曲线经过△P0P1P2中的一条中线P1Pm的中点P4.3

Bezier曲线和曲面P1P0P2PmP二次贝济埃曲线4.3

Bezier曲线和曲面三次Bezier曲线(n=3

,四个特征控制点

)顶点P0,P1,P2,P3四点定义一条三次Bezier曲线。其表达式为:P(t)=

(1–t)3P0+3t(1–t)2P1+3t2(1–t)P2+t3P3=

(1–3t+3t2-t)P0+(3t–6t2+3t3)P1+(3t2–3t3)P2

+

t3P3(0≤t≤1)矩阵表达式为:4.3

Bezier曲线和曲面三次Bezier曲线4.3

Bezier曲线和曲分段的三面次Bezier曲线的C1连续性保证两段三次Bezier曲线段在连接点处C1连续,必具备如下条件:P2、P3(R0)、R1在一条直线上,P2、R1应在连接点P3(R0)的两侧。R0=P34.3

Bezier曲线和曲面例:已知由P1

(0,0,0),P2

(2,

2,-2),P3

(2,-1,-1),P4

(4,0,0),Q1(4,0,0),Q2

(6,-2,1),Q3

(8,-3,2),Q4

(10,0,1),确定的两段三次Bezier曲线,试求其在P4(Q1)处达C1连续的条件,并写出满足连续条件的两段三次Bezier曲线。4.3

Bezier曲线和曲面解:1、两段贝塞尔曲线达到C1连续的充要条件是:P3

、P4(Q1)、Q2

共线故需新增Q2’点,使之与P3

、P4(Q1)点共线,设点

P4(Q1)为中点。则新的Q2’点可由中点公式得出:Q2’(6,1,1)4.3

Bezier曲线和曲面第一段Bezier曲线为:第二段Bezier曲线为:4.3

Bezier曲线和曲绘制任意面阶次的Bezier曲线的C程序//计算vkdouble

powi(double

v,

int

k){double

temp=1.0;if

(k==0

||

v==0)

return

1;else{for(int

i=1;

i<=k;i++)temp=temp*v;}return

temp;}//

00=14.3

Bezier曲线和曲面long

fac(int

m){int

i;//计算m!long

temp=1;if(m==0)

return

1;else{//

0!=1for(i=2;

i<=m;

i++)temp=temp*i;}return

temp;}4.3

Bezier曲线和曲void

bezier(i面nt

px[

], int

py[

], intn){int

x,

y,i,j,k=100; //将区间[0,1]分成100份double

t,

t1,

u,

v;double

temp,

temp1,

temp2,

bi;t=1.0/k; //每份步长为0.01moveto(px[0],

py[0]);for(j=1;

j<k;

j++){t1=j*t;u=t1;x=0;v=1–u;y=0;4.3

Bezier曲线和曲for(i面=0;

i<=n;i++){temp=double(fac(n)/fac(i)/fac(n–i));temp1=powi(u,i);temp2=powi(v,n–i);//计算bi=temp*temp1*temp2;x=x+bi*px[i];y=y+bi*py[i];//计算基函数}

//根据Bezier曲线数学表达式,计算P(t)={x(t),y(t)}lineto

(x,y);}lineto(px[n],

py[n]);}4.3

Bezier曲线和曲面二、Bezier曲面Bezier曲面的数学表达式设Pij

(i=0,

1,…,m;j=0,

1,…,n)为(m+1)×(n+1)个空间点列,则m×n次Bezier曲面定义为:57面Bezier曲面的矩阵表达式:Bezier曲面的特征网格:(m+1)×(n+1)个空间点列Pij

,用线段依次连接每相邻的两点所形成的空间网格。58面一次Bezier曲面(n=m=1)数学表达式为:一次Bezier曲面是一个双曲抛物面。二次Bezier曲面(n=m=2)数学表达式为:59面三次Bezier曲面(n=m=3)数学表达式为:矩阵形式为:604.3

Bezier曲线和曲面令:614.3

Bezier曲线和曲面则三次Bezier曲面为:其中,P为三次Bezier曲面的特征网格矩阵:4.3

Bezier曲线和曲面说明:①周围12个控制点定义4条三次Bezier曲线,作为三次Bezier曲面的4条边界;②4个角点位于曲面上;③中间4个控制点控制曲面的凹凸形状。4.3

Bezier曲线和曲面三次Bezier曲面4.3

Bezier曲线和曲面Bezier曲面的拼接①曲面P

与曲面Q

的C0连接条件:[

p3i

]=[

q0j

] (i

,j=0,1,2,3)②曲面P

与曲面Q

的C1连接条件:在V∈[0,1]

内,曲面P在u=1处的切矢量与曲面Q在u=0处的切矢量相同。4.3

Bezier曲线和曲面4.4 B样条曲线和曲面一、B样条曲线Bezier曲线的不足之处①不灵活——特征多边形的顶点数(m个),决定所定义的Bezier曲线的阶次(m–1次)。②顶点数(m)较大,曲线的阶次较高。从而,特征多边形对曲线形状的控制减弱。③改变特征多边形中任一顶点的位置,会对整条曲线产生影响,不可能对曲线进行局部修。4.4 B样条曲线和曲面B样条曲线的诞生Gordon,Riesenfeld和Forrest等人发明;对Bezier曲线的拓展——用n次B样条基函数替换了伯恩斯坦基函数;克服了Bezier曲线的缺点:可对曲线进行局部修改。对特征多边形更逼近。4.4 B样条曲线和曲面B样条曲线的数学表达式m+1段n次的B样条曲线为:给定m+n+1个顶点P0,P1,P2,…,Pm+n,可以定义说明:(0≤t≤1)①Pk,n(t)为第k段n次B样条曲线段(k=0,1,…,m);②Fi,n(t)为n次B样条基函数(B样条分段混合函数)。694.4 B样条曲线和曲面连接m+1段曲线段Pk,n(t)所组成的整条曲线,称为n次B样条曲线。依次用线段连接Pk+i

(i=0,

1,…,n)所组成的多边折线,称为B样条曲线在第k段的B特征多边形。B样条基函数的表达式:4.4 B样条曲线和曲面二次B样条曲线(1)二次B样条曲线的数学表达式对于二次B样条曲线,n=2,i=0,

1,

2。4.4 B样条曲线和曲面4.4 B样条曲线和曲面二次B样条曲线的分段表达式如下:Pk,2(t)

=

F0,2(t)Pk

+

F1,2(t)Pk+1

+

F2,2(t)Pk+2(k=

0,1,2,….m)二次B样条曲线的矩阵形式:734.4 B样条曲线和曲面(2)二次B样条曲线段的端点性质4.4 B样条曲线和曲面说明:①二次B样条曲线段的起点,在B特征多边形第一条边的中点处,其切矢量为第一条边的走向;②终点在B特征多边形最后一条边的中点处,其切矢量为最后一条边的走向。4.4 B样条曲线和曲面P0P2P(0)P(1)③P(1/2)是△P(0)P1P(1)的中线P1M的中点,且在

P(1/2)处的切线平行于P(0)P(1)

。P1P’(1/2)P(1/2)M二次B样条曲线段4.4 B样条曲线和曲面三次B样条曲线(1)三次B样条曲线的数学表达式对于三次B样条曲线,n=3,i=0,1,2,3。= (–t3

+3t2

3t

+1)4.4 B样条曲线和曲面= (3t3

6t2

+

4)4.4 B样条曲线和曲面= (–3t3

+3t2

+3t

+1)=t34.4 B样条曲线和曲面三次B样条曲线段的表达式可以写成:4.4 B样条曲线和曲面(2)三次B样条曲线段的端点性质Pk,3(t

温馨提示

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

评论

0/150

提交评论