计算机图形中曲面的设计理论_第1页
计算机图形中曲面的设计理论_第2页
计算机图形中曲面的设计理论_第3页
计算机图形中曲面的设计理论_第4页
计算机图形中曲面的设计理论_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

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

文档简介

计算机图形中曲面的设计理论第一页,共一百一十二页,编辑于2023年,星期一9.1插值边界线的孔斯曲面 9.1.1双线性孔斯曲面 如图9.1所示,假设这一对曲线边定义在参数区间u∈[0,1]上,即有参数方程Q0(u)和Q1(u),而u∈[0,1],且满足 Q0(0)=P00,Q0(1)=P10

Q1(0)=P01,Q1(1)=P11(9.1.1)第二页,共一百一十二页,编辑于2023年,星期一

则可写出如上运动生成的曲面片方程为Q(u,v)=(1-v)Q0(u)+vQ1(u) (u,v)∈[0,1;0,1](9.1.2)第三页,共一百一十二页,编辑于2023年,星期一图9.1曲线边界的四边形及其角点示意图第四页,共一百一十二页,编辑于2023年,星期一

完全对等地,对另一对定义在v∈[0,1]上的曲线边,有参数方程R0(v)和R1(v),且满足R0(0)=P00,R0(1)=P01

R1(0)=P10,R1(1)=P11

我们也可写出如上方式生成的曲面片方程:R(u,v)=(1-u)R0(v)+u

R1(v)(u,v)∈[0,1;0,1] (9.1.4)

(9.1.3)第五页,共一百一十二页,编辑于2023年,星期一

但这两个曲面片都不符合以四条曲线为边界曲线的条件。如果把两者叠加起来却适得其反,Q(u,v)+R(u,v)不再插值任一对边界。对曲面片

Q(u,v)+R(u,v)而言,在参数u=0时的边为Q(0,v)+R(0,v)=(1-v)P00+vP01+R0(v)

v∈[0,1](9.1.5)

不难看出,在四条曲线边恰好都为相应的直线段时,Q(u,v)和R(u,v)定义出同一个曲面片:S(u,v)=(1-u)(1-v)P00+(1-u)vP01+u(1-v)P10+uv

P11(u,v)∈[0,1;0,1](9.1.6)第六页,共一百一十二页,编辑于2023年,星期一

亦即 为由曲面片四角点决定的一张双线性张量积曲面,插值于四条直线段边,正好是Q(u,v)+R(u,v)要插值于四条曲线边时多余的那一部分。为得到要求的插值曲面,曲面片Q(u,v)+R(u,v)减去

S(u,v)即可,于是有插值于四条曲线边的曲面P(u,v)=Q(u,v)+R(u,v)-S(u,v)(u,v)∈[0,1;0,1] (9.1.8)

(u,v)∈[0,1;0,1](9.1.7)第七页,共一百一十二页,编辑于2023年,星期一

如此定义的曲面片就是双线性混合孔斯曲面片。根据P(u,v)的插值性质可知,四条边界曲线的等式关系为Q0(u)=P(u,0),Q1(u)=P(u,1)

R0(v)=P(0,v),R1(u)=P(1,v)

四个角点为

P00=P(0,0),P01=P(0,1)

P10=P(1,0),P11=P(1,1)

于是,P(u,v)可用矩阵形式表示为(9.1.9)(9.1.10)(9.1.11)第八页,共一百一十二页,编辑于2023年,星期一

如果把式(9.1.11)看作是由式(9.1.12)解得的,则式(9.1.11)右端的负号就不奇怪了。 将式(9.1.11)对v求偏导后代入v=0可得公共边界线P(u,0)上的跨界切向量为

(9.1.13)(9.1.12)第九页,共一百一十二页,编辑于2023年,星期一 9.1.2双三次孔斯曲面

1.双三次孔斯曲面的定义 三次参数插值曲线不仅要求端点的位置信息,而且还要求端点的切向量信息。注意,这里的位置信息是整条边界曲线边上的各个点的,而不是某个单独的点的位置信息,相应要求的切向量信息也是沿整条曲线边上的各个点,而不是某个单独的点的切向量信息。因此,我们应该有的已知数据至少包括(如图9.2所示): 四个角点:P00,P10,P01,P11; 四条边界曲线:Q0(u),

Q1(u),R0(v),R1(v); 四条边界边上的跨界切向量:Qv0(u),Qv1(u),Ru0(v),

Ru1(v)。第十页,共一百一十二页,编辑于2023年,星期一图9.2定义插值曲面需要的四个角点数据信息第十一页,共一百一十二页,编辑于2023年,星期一

于是,对于固定的v∈[0,1],根据两点P(0,v),P(1,v)及两点处的切向量

Qv0(u),Qv1(u)产生的三次参数曲线为

Q(u,v)=F0(u)P(0,v)+F1(u)P(1,v)+F2(u)Qv0(u)+F3(u)Qv1(u)u∈[0,1](9.1.14)

其中:四个函数Fi(u),i=0,1,2,3为三次参数曲线定义中的三次埃尔米特函数。 把Q(u,v)看作是矩形参数区域(u,v)∈[0,1;0,1]上的函数,就是一个曲面片。

第十二页,共一百一十二页,编辑于2023年,星期一

类似地,对固定的u∈[0,1]根据两点R0(v),R1(v)及两点处的切向量Ru0(v)

Ru1(v)产生的三次参数曲线为R(u,v)=F0(v)R0(v)+F1(v)R1(v)+F2(v)Ru0(v)+F3(v)Ru1(v)

v∈[0,1](9.1.15)

R(u,v)也是矩形参数区域(u,v)∈[0,1;0,1]上的一个曲面片。第十三页,共一百一十二页,编辑于2023年,星期一

如同前一节一样,我们将要定义仅仅利用角点数据信息的插值曲面。这也就是说,假定四条边界线现在是未知的。 首先,应给出由两角点P00和P10及两角点处的切向量Qv0(0)和Qv0(1)产生的v=0对应的曲线边界线:F0(u)P00+F1(u)P10+F2(u)Qv0(0)+F3(u)Qv0(1)

u∈[0,1](9.1.16)

由两角点P01和P11及两角点处的切向量Qv1(0)和

Qv1(1)产生的v=1对应的曲线边界线为 F0(u)P01+F1(u)P11+F2(u)Qv1(0)+F3(u)Qv1(1) u∈[0,1](9.1.17)第十四页,共一百一十二页,编辑于2023年,星期一

于是我们可以给出v=0对应的曲线边界线各点关于参数v的切向量:F0(u)Qv0(0)+F1(u)Qv0(1)+F2(u)Puv(0,0)+F3(u)Puv(1,0)

u∈[0,1](9.1.18) 和v=1对应的曲线边界线各点关于参数v的切向量:

F0(u)Qv1(0)+F1(u)Qv1(1)+F2(u)Puv(0,0)+F3(u)Puv(0,1)

u∈[0,1](9.1.19)

现在我们就可以定义仅仅利用四个角点数据信息的插值曲面:第十五页,共一百一十二页,编辑于2023年,星期一

S(u,v)=[F0(u)F1(u)F2(u)F3(u)] 于是可得双三次混合孔斯曲面片: P(u,v)=Q(u,v)+R(u,v)-S(u,v)(9.1.21)(9.1.20)第十六页,共一百一十二页,编辑于2023年,星期一

此式定义的

P(u,v)满足

P(0,0)=P00,P(1,0)=P10

P(0,1)=P01,P(1,1)=P11

P(u,0)=Q0(u),P(u,1)=Q0(1)

P(0,v)=R0(v),P(1,v)=R1(v)

Pv(u,0)=Qv0(u),Pv(u,1)=Qv1(u)

Pu(0,v)=Ru0(v),Pu(1,v)=Ru1(v)(9.1.22)

利用这些关系式可整理式(9.1.20)和式(9.1.21)为第十七页,共一百一十二页,编辑于2023年,星期一

S(u,v)=[F0(u)F1(u)F2(u)F3(u)]

P(u,v)=[-1F0(u)F1(u)F2(u)F3(u)](9.1.23)(9.1.24)第十八页,共一百一十二页,编辑于2023年,星期一

类似地,式(9.1.24)也可写为如下形式:P(u,v)=[-1F0(u)F1(u)F2(u)F3(u)](9.1.25)第十九页,共一百一十二页,编辑于2023年,星期一2.双三次孔斯曲面的扭矢 求方程(9.1.11)的混合偏导向量,可得Puv(u,v)=Pvu(u,v)=Pv(1,v)-Pv(0,v)+Pu(u,1)-Pu(u,0)-C (9.1.26)

其中: C=P(0,0)-P(0,1)-P(1,0)+P(1,1)(9.1.27)

是由四个角点决定的张量积双线性曲面,即式(9.1.11)所用曲面S(u,v)的扭矢。 分别用u,v=0,1代入上式可得四个角点处的扭矢为第二十页,共一百一十二页,编辑于2023年,星期一

Puv(0,0)=Pv(1,0)-Pv(0,0)+Pu(0,1)-Pu(0,0)-C

Puv(0,1)=Pv(1,1)-Pv(0,1)+Pu(0,1)-Pu(0,0)-C

Puv(1,0)=Pv(1,0)-Pv(0,0)+Pu(1,1)-Pu(1,0)-C

Puv(1,1)=Pv(1,1)-Pv(0,1)+Pu(1,1)-Pu(1,0)-C 3.孔斯曲面扭矢相容性

从方程(9.1.20)中的边界信息矩阵看,以角点P(0,0)处扭矢为例,它既应是Pv(u,0)=Qv0(u)对u求偏导后置u=0得到(9.1.28)(9.1.29)第二十一页,共一百一十二页,编辑于2023年,星期一

也应是Pu(0,v)=Ru0(v)对v求偏导后置v=0得到 有两种解决这一问题的方式:一是实际情况许可时调整所给的原始数据,以使不相容性消失。二是在原始数据不能改变的情况下,可以采用称之为格里戈里正方形的方法。该方法使用可变扭矢替代式(9.1.24)中的固定扭矢。可变扭矢定义如下:(9.1.30)第二十二页,共一百一十二页,编辑于2023年,星期一(9.1.31)第二十三页,共一百一十二页,编辑于2023年,星期一 4.孔斯曲面跨界切向量的确定 我们就可以定义:Qv0(u)=F0(u)Pv(0,0)+F1(u)Pv(1,0)+F2(u)Puv(0,0)+F3(u)Puv(1,0)

Qv1(u)=F0(u)Pv(0,1)+F1(u)Pv(1,1)+F2(u)Puv(0,1)+F3(u)Puv(1,1)

Ru0(u)=F0(u)Pu(0,0)+F1(u)Pu(0,1)+F2(u)Puv(0,0)+F3(u)Puv(0,1)

Rv1(u)=F0(u)Pu(1,0)+F1(u)Pu(1,1)+F2(u)Puv(1,0)+F3(u)Puv(1,1)(9.1.32)第二十四页,共一百一十二页,编辑于2023年,星期一9.2双线性与双三次参数曲面 9.2.1双线性参数曲面定义及其表示 式(9.1.7)中的S(u,v)对两个参数分别为线性,其几何意义也非常明确,只需要知道四个角点的位置就可以了,所以式(9.1.7)可称为双线性参数曲面的几何表示形式。写成一般代数形式时有如下表达式:(u,v)∈[0,1;0,1](9.2.1)第二十五页,共一百一十二页,编辑于2023年,星期一 9.2.2双三次参数曲面定义及其表示 式(9.1.23)中的S(u,v)对两个参数分别为三次多项式,可称为双三次参数曲面的几何表示形式。写成一般形式时有如下表达式:

可用矩阵表示为(9.2.2)(u,v)∈[0,1;0,1](9.2.3)第二十六页,共一百一十二页,编辑于2023年,星期一

下面我们推导两种表达式之间的关系。注意到有

F(t)=[2t3-3t2+12t3+3t2

t3-2t2+t

t3-t2]

=[1t

t2t3] 其中的4×4矩阵用M表示,则式(9.1.23)可重新表示为

(9.2.4)第二十七页,共一百一十二页,编辑于2023年,星期一

S(u,v)=[1u

u2

u3]M (u,v)∈[0,1;0,1](9.2.5)

反过来,式(9.2.3)也可用式(9.2.5)的形式表示出来:

S(u,v)=[F0(u)F1(u)F2(u)F3(u)]M-1

(9.2.6)第二十八页,共一百一十二页,编辑于2023年,星期一 9.2.3双三次参数曲面的其它形式 基于上述原因,我们一般让16个点形成网状分布,如图9.3所示。参数取值为u=u0,u1,u2,u3

和v=v0,v1,v2,v3,即有Pij=S(ui,vj),i=0,1,2,3,j=0,1,2,3。第二十九页,共一百一十二页,编辑于2023年,星期一图9.3成网状分布的16个数据点第三十页,共一百一十二页,编辑于2023年,星期一

于是由式(9.2.2)可得16组方程:

A00+v1j

A01+v2j

A02+v3j

A03+u1iA10+u1iv1jA11+u1iv2jA12+uiiv3jA13+

u2i

A20+u2iv1j

A21+u2iv2j

A22+uiiv3j

A23+

u3iA30+u3iv1j

A31+u3iv2j

A32+u3iv3j

A33=Pij

i,j=0,1,2,3

定义16维向量:A=[A00

A01

A02

A03

A10

A11A12

A13A20A21

A22

A23

A30

A31

A32

A33]

(9.2.8)(9.2.7)第三十一页,共一百一十二页,编辑于2023年,星期一

和P=[P00

P01

P02

P03

P10

P11P12

P13P20

P21

P22P23

P30

P31

P32

P33]

(9.2.9)

再定义16×16矩阵,其ij+1行由式(9.2.7)的Pij对应的方程中各个未知量Amn前面的系数依次组成:第三十二页,共一百一十二页,编辑于2023年,星期一第三十三页,共一百一十二页,编辑于2023年,星期一(9.2.10)第三十四页,共一百一十二页,编辑于2023年,星期一

如果定义矩阵 则矩阵B有如下的分块表示:(9.2.11)第三十五页,共一百一十二页,编辑于2023年,星期一

有了上述记号,式(9.2.7)可用矩阵表示为 BA=P(9.2.12)

现在求解双三次参数曲面就是求解一个线性方程组,解为 A=B-1

P(9.2.13)

实际的情况常常比较简单一些:其中有12个已知点是在曲面片的四条边界线上的,这时参数的取值为u0=v0=0,u3=v3=1,矩阵V可简化为第三十六页,共一百一十二页,编辑于2023年,星期一

这时矩阵B有如下的分块表示:

如果进一步选取u1=v1=1/3,u2=v2=2/3为固定值,则矩阵V和B就是常数矩阵了,求解过程也可以进一步简化。(9.2.14)第三十七页,共一百一十二页,编辑于2023年,星期一 9.2.4常用曲面的参数形式 1.平面块的参数形式 平面的参数表示形式为P(u,v)=P00+uTu+vTv

(u,v)∈[0,1;0,1](9.2.15)

它表示以

P00为顶点,Tu、

Tv为边的平行四边形平面块,如图9.4所示。第三十八页,共一百一十二页,编辑于2023年,星期一图9.4平面的双三次参数表示第三十九页,共一百一十二页,编辑于2023年,星期一

若假设 P00=(x0,y0,z0),Tu=(Δxu,Δyu,Δzu),Tv=(Δxv,Δyv,Δzv)(9.2.16)

则这个平面块的四个角点可表示为P00=(x0,y0,z0),P10=P00+T0=(x0+Δxu,y0+Δyu,z0+Δzu) P01=P00+T1=(x0+Δxv,y0+Δyv,z0+Δzv)

P11=P00+T0+T1=(x0+Δxu+Δxv,y0+Δyu+Δyv,z0+Δzu+Δzv) (9.2.17)第四十页,共一百一十二页,编辑于2023年,星期一

它在Oxy平面上的投影为一个平行四边形。这个平面块的四个角点上的八个切向量分别为:Pu(0,0)=Pu(1,0)=Pu(0,1)=Pu(1,1)=Tu和Pv(0,0)=Pv(1,0)=Pv(0,1)=Pv(1,1)=Tv。在上述参数形式下的平面方程中,平面上任何一点的扭矢为零。因此平面片的几何系数矩阵可表示为P(0,0)P(0,1)Pv(0,0)Pv(0,1) P(1,0)P(1,1)Pv(1,0)Pv(1,1)Pu(0,0)Pu(0,1)Puv(0,0)Puv(0,1)Pu(1,0)Pu(1,1)Puv(1,0)Puv(1,1)G=第四十一页,共一百一十二页,编辑于2023年,星期一

P(0,0)P(0,0)+TvTvTv P(0,0)+TuP(0,0)+Tv+TuTvTv TuTu00 TuTu00

或在已知三个角点P(0,0),P(1,0),P(0,1)时直接用位置向量表示为P(0,0)P(0,1)P(0,1)-P(0,0)P(0,1)-P(0,0) P(1,0)P(1,0)+P(0,1)-P(0,0)P(0,1)-P(0,0)P(0,1)-P(0,0) P(1,0)-P(0,0)P(1,0)-P(0,0)00 P(1,0)-P(0,0)P(1,0)-P(0,0)00A=(9.2.18)(9.2.19)第四十二页,共一百一十二页,编辑于2023年,星期一 2.柱面的参数形式 柱面方程的一般参数形式为 P(u,v)=P(u)+vTv(u,v)∈[0,1;0,1](9.2.20)其中:P(u)为任意的空间曲线,

Tv为直线段的方向向量,参数v沿直线段方向变化。设P(u)为几何系数矩阵为G0=[P0

P1

T0

T1]的参数三次曲线。另有一直线段,其一端为P0,另一端为P2。因此其几何系数矩阵为G1=[P0

P2

P2-P0

P2-P0]。 当直线段的端点P0沿G0给出的参数三次曲线平移时,它所扫成的曲面就是一个柱面,如图9.5所示。现在求这个柱面的双三次曲面表示形式的几何系数矩阵G。第四十三页,共一百一十二页,编辑于2023年,星期一图9.5柱面的双三次参数表示第四十四页,共一百一十二页,编辑于2023年,星期一

由柱面的几何特性可知,柱面上的任何一点的扭矢为零。因此由

G0和G1

不难得到P0P2

P2-P0

P2-P0

P1P1+P2-P0

P2-P0

P2-P0

T0T000

T1

T100

由于假设P(u)为参数三次曲线,故不能为圆弧曲线。这说明圆柱面难以用双三次曲面表示。其它的含有圆弧曲线的曲面,如常见的旋转曲面也难以用双三次曲面表示。(9.2.21)第四十五页,共一百一十二页,编辑于2023年,星期一 3.直纹曲面 设Pj(v),j=0,1为两条空间参数三次曲线,其几何系数矩阵分别为

Gj=[P0jP1j

T0jT1j],j=0,1。如果在这两条曲线的起点P00、

P01之间连接一条线段,则这条直线段的两端分别沿其所在的参数三次曲线向曲线的另一端P10、P11同步移动,则直线段运动所构成的曲面就是直纹曲面,如图9.6所示。直纹曲面用一般参数形式表示为r(u,v)=(1-u)P0(v)+uP1(v)(u,v)∈[0,1;0,1](9.2.22)第四十六页,共一百一十二页,编辑于2023年,星期一图9.6直纹曲面的双三次参数表示第四十七页,共一百一十二页,编辑于2023年,星期一

显然,直纹曲面上任何一点的扭矢都为零。因此产生的直纹曲面的三次参数表示的几何系数矩阵

G为(9.2.23)第四十八页,共一百一十二页,编辑于2023年,星期一9.3Bézier曲面 9.3.1Bézier曲面片的定义 由式(9.1.23)定义双三次参数曲面的方式可以用来定义Bézier曲面。设有(m+1)×(n+1)个点Pij,i=0,1,…,m,j=0,1,…,n。先固定i,我们即有(n+1)个点Pij,j=0,1,…,n,可以生成一条n阶Bézier曲线: u∈[0,1](9.3.1)

按照此种方式,我们共定义出了m+1条Bézier曲线。第四十九页,共一百一十二页,编辑于2023年,星期一

对任意固定的u∈[0,1],我们可以得到取自这m+1条Bézier曲线的m+1个点Qi(u),i=0,1,…,m,以这些点作控制点,我们又可以得到一条m阶Bézier曲线:

把此式看作两个参数(u,v)∈[0,1;0,1]处的函数,就得到

v∈[0,1](9.3.2)(u,v)∈[0,1;0,1](9.3.3)第五十页,共一百一十二页,编辑于2023年,星期一

于是就定义了一个m×n次Bézier曲面片。我们当然也可以按先固定j的方式生成一个Bézier曲面片方程,其几何结果是完全相同的一个Bézier曲面片。直观上,Bézier曲面是一条Bézier曲线在空间按另一条Bézier曲线运动所形成的轨迹。 在此,我们先定义曲线,再通过“线动成面”的方法来定义Bézier曲面。用这种方式定义的曲面称为张量积曲面或笛卡尔积曲面。上式定义的是张量积Bézier曲面,它的两组基函数都是伯恩斯坦基函数。第五十一页,共一百一十二页,编辑于2023年,星期一

如同Bézier曲线有一个控制多边形一样,类似地,Bézier曲面也有一个控制多面体,上面给出的Pij是控制多面体的顶点,称为控制顶点。控制顶点沿i方向和j方向分别构成m+1个和n+1个控制多边形,它们一起组成曲面的控制多面体,也称控制网格。式(9.3.3)中的Bi,m(u)和Bj,n(v)分别是m次和n次伯恩斯坦基函数,即(9.3.4)第五十二页,共一百一十二页,编辑于2023年,星期一 9.3.2Bézier曲面片的性质

(1)Bézier曲面片的四个角点正好是相应的Bézier控制网格的四个角点,即有

P(0,0)=P00,P(1,0)=Pm0,P(0,1)=P0n,P(1,1)=Pmn(9.3.5) (2)Bézier曲面片具有几何不变性。 (3)Bézier曲面片具有凸包性质。 (4)Bézier曲面片在角点处的切平面为由该角点及其相邻的两个点共三个点决定的平面。例如在角点P00处的切平面为由P00,P01和P10三个点决定的平面。第五十三页,共一百一十二页,编辑于2023年,星期一

(5)m×n次Bézier曲面片的四条边界曲线分别是m次和n次Bézier曲线。对于低阶的Bézier曲面片我们还有如下一些结论:

(1)1×1的Bézier曲面片就是由式(9.1.7)。 (2)2×2的Bézier曲面片由九个定义的曲面片S(u,v),其边界为四条直线段控制点确定,周围的八个控制点确定了Bézier曲面片在四个角点处的切平面,也确定了Bézier曲面片的四条边界线;中间的一个控制顶点

P11则指明了Bézier曲面片中间部分凸起或凹陷的方向,即凸凹的程度。第五十四页,共一百一十二页,编辑于2023年,星期一 9.3.3双三次Bézier曲面 在实际应用中,用得最多的是3×3的Bézier曲面片,这时我们就称相应的Bézier曲面片为双三次Bézier曲面片。双三次Bézier曲面片的表达式为 写成矩阵表达式为(u,v)∈[0,1;0,1](9.3.6)(u,v)∈[0,1;0,1](9.3.7)第五十五页,共一百一十二页,编辑于2023年,星期一

其中:(9.3.8)第五十六页,共一百一十二页,编辑于2023年,星期一

矩阵P所包含的是控制点的位置向量,它们确定了一个多面体,同时也确定了一个Bézier曲面片。显然,只有四个角点真正在曲面上。边界线上的控制点确定了四个角点的切平面,同时也确定了边界曲线的切线。中间的四个控制点P11、P12、P21和P22将影响着曲面片四个角点处的混合偏导向量,即扭矢。 双三次Bézier曲面片显然也是一种双三次参数曲面片。两者相比较,双三次Bézier曲面片有很多优点,主要有如下几点:双三次Bézier曲面片直接用16个点给出表达式,避免了确定切线向量和扭矢这些难以确定的量,16个点给出的控制多面体大致反映了Bézier曲面片的形状,通过对控制顶点的直观修改、调整,就能实现对Bézier曲面片的修改、调整。第五十七页,共一百一十二页,编辑于2023年,星期一

根据Bézier曲线连接的条件可以看到,两个Bézier曲面片要求达到光滑连接,就需要在公共边界处有连续变化的法向量,即有连续变化的切平面,具体应满足:

(1)如图9.7所示,公用一条边界曲线,即共同使用定义公共边界曲线的四个控制点: P03,P13,P23,P33(9.3.9)

这一条件保证了两个曲面片是位置连续的,即有共同的边界线。第五十八页,共一百一十二页,编辑于2023年,星期一图9.7两片Bézier曲面片的连接第五十九页,共一百一十二页,编辑于2023年,星期一 (2)公共边界两侧八个控制顶点和定义公共边界的四个控制顶点分为四组,每组三点,则每组中的三点共线。而且,定义公共边界的四个控制顶点分别把共线线段分成等比例,即有(9.3.10)第六十页,共一百一十二页,编辑于2023年,星期一9.4B-样条曲面 9.4.1B-样条曲面片的定义 类似于借助Bézier曲线生成Bézier曲面,我们也可以借助于B-样条曲线生成B-样条曲面。设给定(m+1)×(n+1)个控制顶点

Pij,i=0,1,…,m;j=0,1,…,n(9.4.1)

以及两列节点取值

u0≤u1≤…≤um+k+1(9.4.2)

v0≤v1≤…≤vm+l+1(9.4.3)第六十一页,共一百一十二页,编辑于2023年,星期一

则可定义一个k×l阶B-样条曲面 其中:Nik(u)和Njl(v)分别是由两列节点定义的k阶和l阶B-样条曲线的B-样条基函数。而由(m+1)×(n+1)个控制顶点构成的多面体称为这个B-样条曲面的控制网格或称控制多面体。控制多面体的形状大体上反映了B-样条曲面的形状。(u,v)∈[uk,um+1;

vl,vn+1](9.4.4)第六十二页,共一百一十二页,编辑于2023年,星期一

类似于B-样条曲线的分类,B-样条曲面沿任一参数方向按节点序列取值的不同可以划分成四种不同类型:均匀、准均匀、分片Bézier与非均匀B-样条曲面。沿两个参数方向也可选取不同类型。特殊地,若两个节点序列取值分别为u0=u1=…=uk+1=0,uk+2=uk+3=…=u2k+2=1(9.4.5)

和u0=u1=…=ul+1=0,ul+2=ul+3=…=u2l+2=1(9.4.6)第六十三页,共一百一十二页,编辑于2023年,星期一 9.4.2双三次均匀B-样条曲面片公式

3×3阶均匀B-样条曲面片也称双三次均匀B-样条曲面片,当我们把其参数由一般长方形参数区间变换到标准单位正方形参数区间上时,其方程可表示为 P(u,v)=[1uu2

u3]APA′

(u,v)∈[0,1;0,1](9.4.7)第六十四页,共一百一十二页,编辑于2023年,星期一

其中:(9.4.8)第六十五页,共一百一十二页,编辑于2023年,星期一 9.4.3B-样条曲面片的优点 与Bézier曲面相比,B-样条曲面有以下主要优点:

(1)多个B-样条曲面片的连接不需要考虑连接条件。当第一个曲面片被计算以后,不需要考虑连接条件,即可计算第二个曲面片,只是控制顶点矩阵P中的元素有部分改变。在双三次B-样条曲面上处处具有一阶和二阶连续性。因此各个相邻的双三次B-样条曲面片之间自动实现二阶连续性,也就不需要考虑双三次B-样条曲面片之间的光滑拼接问题。利用双三次参数曲面片和双三次Bézier曲面片解决这一问题都是很困难的。第六十六页,共一百一十二页,编辑于2023年,星期一 (2)B-样条曲面的控制网格的顶点数量不受限制,因此,B-样条曲面可表示比Bézier曲面复杂得多的曲面。同时,B-样条曲面的阶数不因控制顶点数目的增加而增加,保证了当控制顶点数目增加时,不增加计算的复杂程度。

(3)B-样条曲面具有局部控制性质。当改变某个控制顶点时,只有那些与该顶点相关的几个B-样条曲面片的形状会发生变化,其余的B-样条曲面片的形状不会发生任何变化。

(4)像B-样条曲线一样,B-样条曲面也具有比Bzier曲面更强的凸包性质。第六十七页,共一百一十二页,编辑于2023年,星期一9.5非均匀有理B-样条曲面 9.5.1NURBS曲面的定义 我们可以完全类似地定义非均匀有理B-样条曲面。设给定(m+1)×(n+1)个控制顶点和每点对应的权因子 Pij,ωij>0,i=0,1,…,m,j=0,1,…,n(9.5.1)

以及两列节点取值

u0≤u1≤…≤um+k+1(9.5.2)

和 v0≤v1≤…≤vm+l+1(9.5.3)第六十八页,共一百一十二页,编辑于2023年,星期一

则可定义一个k×l阶非均匀有理B-样条曲面:

其中:Nik(u)和Njl(v)是由两列节点定义非均匀有理B-样条曲线时的非均匀有理B-样条基函数。而由(m+1)×(n+1)个控制顶点构成的多面体称为这个非均匀有理B-样条曲面的控制网格或称控制多面体。控制多面体的形状大体反映了非均匀有理B-样条曲面的形状。(u,v)∈[uk,um+1;

vl,vn+1](9.5.4)第六十九页,共一百一十二页,编辑于2023年,星期一

特殊地,若两个节点序列取值分别为 u0=u1=…=uk+1=0,uk+2=uk+3=…=u2k+2=1(9.5.5) 和

u0=u1=…=ul+1=0,ul+2=ul+3=…=u2l+2=1(9.5.6)

则所定义的非均匀有理B-样条曲面就是k×l阶有理Bézier曲面。第七十页,共一百一十二页,编辑于2023年,星期一 3×3阶非均匀有理B-样条曲面片也称双三次非均匀有理B-样条曲面片。当我们把其参数由一般长方形区间变换到标准单位正方形区间上时,其方程可表示为(u,v)∈[0,1;0,1](9.5.7)第七十一页,共一百一十二页,编辑于2023年,星期一

其中:第七十二页,共一百一十二页,编辑于2023年,星期一

与双三次非均匀有理B-样条曲面片相对应的,我们也可定义出有理双三次Bézier曲面,其表达式完全类似于双三次有理均匀B-样条曲面,仅需把式(9.5.8)中的矩阵A用下面的矩阵代替即可:(9.5.9第七十三页,共一百一十二页,编辑于2023年,星期一 9.5.2NURBS曲面表示的旋转面 与多项式的这一类曲面相比,我们可以用有理B-样条或Bézier曲面精确地表示出球面或其它类型的包含圆弧线的曲面,如圆柱面、圆锥面及旋转体面等等。这些都是利用计算机进行辅助设计时经常用到的图形。下面我们以旋转曲面为例加以说明。 一般旋转面由称为母线的曲线绕称为轴的直线旋转生成。如图9.8所示,定义一张旋转面最方便的方法是先在某个坐标平面譬如Oxz平面内定义一条母线L,然后将它绕其中的一个坐标轴如z轴旋转一周,则得一张完整的旋转面。若旋转不到一周,则得部分旋转面。第七十四页,共一百一十二页,编辑于2023年,星期一图9.8旋转曲面的NURBS表示第七十五页,共一百一十二页,编辑于2023年,星期一

假设母线

L(u)为一条k次NURBS曲线,它的控制顶点和权因子为Pi,0,i=0,1,…,n和ωi,0,i=0,1,…,n,节点为ui,0,i=0,1,…,n+k。 如图9.8所示,把表示母线的NURBS曲线与定义整圆的二次NURBS表示结合起来,就得到如下完整旋转面的方程的控制顶点、权因子和节点取值:当u固定不变时,曲面的截面线为圆,即参数v方向产生圆心在旋转轴上的圆弧线。因此我们对每个固定的i,把控制顶点Pi,0绕轴旋转一周得到一个整圆作为产生整圆的NURBS表示的第一个控制点,并由此推得整圆的NURBS表示的其它点。以图8.20中产生整圆NURBS表示的正方形的控制多边形为例,我们得到控制点Pi,j,j=0,1,…,8,相应的权因子ωi,j为ωi,0与整圆的NURBS表示各点相应权因子的乘积,也就是第七十六页,共一百一十二页,编辑于2023年,星期一

v参数方向节点值的取值仍然依次为

0,0,0,1/4,1/4,1/2,1/2,3/4,3/4,1,1,1

作为旋转曲面,整球面可由半圆绕过两端点的直径轴旋转一周得到,如图9.9所示,其控制网格形成一个外切正方体。如图9.10所示,圆环面可由一整圆绕不与该整圆相交的轴线旋转得到。(9.5.10)第七十七页,共一百一十二页,编辑于2023年,星期一图9.9NURBS整球面第七十八页,共一百一十二页,编辑于2023年,星期一图9.10NURBS圆环面第七十九页,共一百一十二页,编辑于2023年,星期一9.6三角域上的Bézier曲面 9.6.1三角域内的重心坐标 在直线上,若已知两点A,B,则两点连线上任一点D可表示为 D=(1-t)A+tB0≤t≤1(9.6.1)

现在假设在平面上已知三点A,B,C,则三点所连三角形内任一点P该如何表示呢?设O点为坐标原点,回忆直线的情况,上式可用向量形式表示为(9.6.2)第八十页,共一百一十二页,编辑于2023年,星期一

当一点P在三角形△ABC内时,类似可得

于是,存在0≤s≤1和0≤t≤1,使得 代入式(9.6.3)得(9.6.3)(9.6.4)(9.6.5)第八十一页,共一百一十二页,编辑于2023年,星期一

如果把△ABC理解为一个数值,即看作是这个三角形的面积,则

通常,我们用点坐标的形式表示出上述关系:

P=uA+vB+wC(9.6.7)

其中: 0≤u≤1,0≤v≤1,0≤w≤1,u+v+w=1(9.6.8)(9.6.6)第八十二页,共一百一十二页,编辑于2023年,星期一

并称(u,v,w)为点P关于三点A,

B,C的重心坐标。这个坐标从力学原理上可理解为三点A,B,C各有质量u,v,w时,其重心在P。依据式(9.6.6)可知,只要三点A,B,C不共线,点P的重心坐标(u,v,w)就存在,并且点P与坐标是相互惟一确定的。 另外,当△ABC=1时,点P重心坐标的三个分量u,

v,w就是如图9.11所示的点P与△ABC三个顶点连线形成的三个小三角形的面积。第八十三页,共一百一十二页,编辑于2023年,星期一图9.11三角域内的重心坐标定义第八十四页,共一百一十二页,编辑于2023年,星期一

限制条件0≤u≤1,0≤v≤1,0≤w≤1是为了保证点P位于三角形内。不满足此条件的重心坐标(u,v,w)仍可定义出平面上一点,但位于指定的三角形之外。根据重心坐标的几何意义不难给出其由三点表示的表达式。由于涉及到线段长度,其表达式很容易遇到开方运算。如果点是平面坐标系内的点,则有二维坐标表示:A=(ax,ay),B=(bx,by),C=(cx,cy)(9.6.9)

则三角形的有向面积为(9.6.10)第八十五页,共一百一十二页,编辑于2023年,星期一

对于这个有向面积计算公式,无论点P位于三角形内或外,如下表达式始终成立: 9.6.2三角域上的Beinstein函数 单变量的n次Beinstein函数由n次二项式[t+(1-t)]n的展开式的各项构成。 类似地,双变量的n次Beinstein函数可以由n次三项式[u+v+(1-u-v)]n的展开式的各项构成。为方便起见,令w=1-u-v,得展开式(9.6.11)第八十六页,共一百一十二页,编辑于2023年,星期一

由此定义三角域上的n次Beinstein函数:

其中: 0≤u,v,w≤1,u+v+w=1 0≤i,j,k≤n,i+j+k=n

依据i,j,k满足的条件可以推得三角域上的n次Beinstein函数共有(n+1)(n+2)/2个。这些函数可以直观地认为分布在如图9.12所示的三角阵列中。(9.6.13)(9.6.14)第八十七页,共一百一十二页,编辑于2023年,星期一图9.12三角域上的n次Beinstein函数的分布第八十八页,共一百一十二页,编辑于2023年,星期一

不难看出,三角形的三条边上分别对应着u=0,v=0和w=0。在分别与u=0,v=0和w=0相应的边平行的直线上,相应的u,v或w保持不变,因此称为等参数线。相应于某条边上的所有n次Beinstein函数正好是单变量的所有n次Beinstein函数。三角域上的n次Beinstein函数具有类似于单变量的n次Beinstein函数的如下性质: (1)规范性:(9.6.15)第八十九页,共一百一十二页,编辑于2023年,星期一 (2)非负性: Bi,j,k(u,v,w)=uivjwk≥0(9.6.16) (3)递推性:

9.6.3三角域上的Bézier曲面 类似于Bézier曲线的定义,在三角域内每个节点i,j,k对应一个控制点Pi,j,k,则可立即写出一个曲面片表达式:(9.6.17)(9.6.18)第九十页,共一百一十二页,编辑于2023年,星期一

其中: 0≤u,v,w≤1,u+v+w=1 0≤i,j,k≤n,i+j+k=n(9.6.19)

这就是三角域上的Bézier曲面。当所有分配在节点处的控制点Pi,j,k按照图9.12所示的节点连接方式连接在一起时,就形成了一张由三角平面块构成的一个多面体,这就是三角域上的Bézier曲面的控制多面体,或称控制网格。图9.13显示了二次和三次的三角域上的Bézier曲面及控制多面体。第九十一页,共一百一十二页,编辑于2023年,星期一图9.13三角域上的Bézier曲面及控制多面体第九十二页,共一百一十二页,编辑于2023年,星期一

特别地,假设平面上三个点A=(ax,ay),B=(bx,by),C=(cx,cy),控制点Pi,j,k=(xi,j,k,yi,j,k,zi,j,k)满足 则曲面上任一点P(u,v,w)=(x(u,v,w),y(u,v,w),z(u,v,w))满足(x(u,v,w),y(u,v,w))=uA+vB+wC=(uax+vbx+wcx,uay+vby+wcy)(9.6.21)(9.6.20)第九十三页,共一百一十二页,编辑于2023年,星期一 9.6.4三角域上的Bézier曲面的方向导向量 由于三角域上的Bézier曲面的三个参数相互依赖,对某个参数求导在这里没有明确的意义。为了明确求导的实际含义,这里指定求某个指定方向的导向量。设有参数三角形一点P0=(u0,v0,w0)及方向向量R=(ru,rv,rw),由此确定过点P0

,具有指定方向R的直线上一点(u,v,w)可表示为(u,v,w)=L(λ)=P0+λR=(u0+λru,v0+λrv,w0+λrw)(9.6.22)第九十四页,共一百一十二页,编辑于2023年,星期一

于是

P(u,v,w)=P(u0+λru,v0+λrv,w0+λrw)=Bi,j,k(u0+λru,v0+λrv,w0+λrw)Pi,j,k

对λ求导可得方向导向量 其中:

P1i,j,k=ru

Pi+1,j,k+rv

Pi,j+1,k+rw

Pi,j,k+1

i+j+k=n-10≤i,j,k≥0(9.6.25)(9.6.23)(9.6.24)第九十五页,共一百一十二页,编辑于2023年,星期一

需要提醒的是,由于重心坐标的三个分量之和始终为1,因此作为方向向量的

R=(ru,rv,rw)的三个坐标分量之和必然为零,即有ru+rv+rw=0。 反复求导,对m=1,2,…,n可得一般的m阶方向导向量:

P0i,j,k=Pi,j,k

Pmi,j,k=ru

Pm-1

i+1,j,k+rvPm-1

i,j+1,

k+rw

Pm-1i,j,k+1i+j+k=n-mi,j,k≥0Pmi,j,k(9.6.26)其中:(9.6.27)第九十六页,共一百一十二页,编辑于2023年,星期一

利用此公式可求得对u,v,w任意参数方向的导向量。如为了求u参数方向的导向量,可取R=(ru,rv,rw)中的ru=1,另外两个参数有一个保持不变,即有一个分量为零。由于三个坐标分量之和必然为零,第三个分量一定为-1。因此可取R=(ru,rv,rw)=(1,0,-1)得到Pmi,j,k=Pm-1i+1,j,k-Pm-1i,j,k+1

式(9.6.28)为求沿v=0对应的三角形的边方向的导向量所需要的点的递推计算公式。 取R=(ru,rv,rw)=(1,-1,0)得到 Pmi,j,k=Pm-1i+1,j,k-Pm-1i,j+1,k

温馨提示

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

评论

0/150

提交评论