40
3.1.2 B 样样样样样样样

3.1.2 B 样条曲线和曲面

Embed Size (px)

DESCRIPTION

3.1.2 B 样条曲线和曲面. 在我们工程中应用的拟合曲线,一般  地说可以分为两种类型:一种是最终  生成的曲线通过所有的给定型值点,  比如抛物样条曲线和三次参数样条曲  线等,这样的曲线适用于插值放样;  另一种曲线是,它的最终结果并不一  定通过给定的型值点,而只是比较好  地接近这些点,这类曲线(或曲面)  比较适合于外形设计。. 因为在外形设计中 ( 比如汽车、船舶 ) ,  初始给出的数据点往往并不精确;并  且有的地方在外观上考虑是主要的,  因为不是功能的要求,所以为了美观  而宁可放弃个别数据点。因此不须最 - PowerPoint PPT Presentation

Citation preview

Page 1: 3.1.2  B 样条曲线和曲面

3.1.2 B 样条曲线和曲面

Page 2: 3.1.2  B 样条曲线和曲面

 在我们工程中应用的拟合曲线,一般 地说可以分为两种类型:一种是最终 生成的曲线通过所有的给定型值点, 比如抛物样条曲线和三次参数样条曲 线等,这样的曲线适用于插值放样; 另一种曲线是,它的最终结果并不一 定通过给定的型值点,而只是比较好 地接近这些点,这类曲线(或曲面) 比较适合于外形设计。

Page 3: 3.1.2  B 样条曲线和曲面

 因为在外形设计中 ( 比如汽车、船舶 ) , 初始给出的数据点往往并不精确;并 且有的地方在外观上考虑是主要的, 因为不是功能的要求,所以为了美观 而宁可放弃个别数据点。因此不须最 终生成的曲线都通过这些数据点。 另一方面,考虑到在进行外形设计时 应易于实时局部修改,反映直观,以 便于设计者交互操作。第一类曲线在 这方面就不能适应。

Page 4: 3.1.2  B 样条曲线和曲面

  法国的 Bezier 为此提出了一种新的 参数曲线表示方法,因此称为 Bezier 曲线。后来又经过 Gordon 、 Forrest 和 Riesenfeld 等人的拓广、发展, 提出了B样条曲线。  这两种曲线都因能较好地适用于 外形设计的特殊要求而获得了广泛的 应用。

Page 5: 3.1.2  B 样条曲线和曲面

 一、 Bezier 曲线  Bezier 曲线的形状是通过一组多边折 线(特征多边形)的各顶点唯一地定 义出来的。在这组顶点中:  (1) 只有第一个顶点和最后一个顶点 在曲线上;  (2) 其余的顶点则用于定义曲线的导 数、阶次和形状;  (3) 第一条边和最后一条边则表示了 曲线在两端点处的切线方向。

Page 6: 3.1.2  B 样条曲线和曲面

P0

P0 P2

P1

P1P2

P3

P3

P1

P0 P3

P2

Page 7: 3.1.2  B 样条曲线和曲面

 1 .Bezier 曲线的数学表达式  Bezier 曲线是由多项式混合函数推导 出来的,通常 n+1 个顶点定义一个 n 次多项式。其数学表达式为: (0 ≤ t ≤ 1)

 式中:P i :为各顶点的位置向量    B i,n(t) :为伯恩斯坦基函数

n

inii tBPtP

0, )()(

Page 8: 3.1.2  B 样条曲线和曲面

 伯恩斯坦基函数的表达式为: 

  假如规定:0=1,0!=1,则  t=0:   i=0 ,Bi,n(t)=1      i0 ,Bi,n(t)=0  P(0)=P0     00

0 )01(0!1

!)0( PP

n

nP n

inini tt

ini

ntB

)1(

)!(!

!)(,

Page 9: 3.1.2  B 样条曲线和曲面

  t=1:   i=n ,Bi,n(t)=1 in ,Bi,n(t)=0  P(1)=Pn

所以说,“只有第一个顶点和最后一个 顶点在曲线上”。即   Bezier 曲线只通过多边折线的起点 和终点。

nnn PP

n

nP

0)11(1

1!

!)1(

Page 10: 3.1.2  B 样条曲线和曲面

 下面我们通过对基函数求导,来分析 两端切矢的情况。     得: 

)]()([)( 1,1,1', tBtBntB ninini

1

01,1,1

' )]()([)(n

ininii tBtBPntP

Page 11: 3.1.2  B 样条曲线和曲面

 讨论:  

  t=0: i=0: Bi-1,n-1(t)=0 ; Bi,n-1(t)=1 。 i=1: Bi-1,n-1(t)=1 ; Bi,n-1(t)=0 。 i2: Bi-1,n-1(t)=0 ; Bi,n-1(t)=0 。      (均出现 0 的非 0 次幂)

inini

inini

ttini

ntB

ttini

ntB

11,

111,1

)1()!1(!

)!1()(

)1()!()!1(

)!1()(

Page 12: 3.1.2  B 样条曲线和曲面

    t=0 

 同理可得,当 t=1 时

 这两个式子说明: Bezier 曲线在两端 点处的切矢方向与特征多边形的第一 条边和最后一条边相一致。

)()0()0( 01'' PPntPP

)()1( 1'

nn PPnP

Page 13: 3.1.2  B 样条曲线和曲面

 2 . 二次和三次 Bezier 曲线   (1) 三个顶点: P0,P1,P2 可定义一条 二次 (n=2) Bezier 曲线: 其相应的混合函数为:

 

22222,2

1212,1

20202,0

)1(!0!2

!2)(

)1(2)1(!1!1

!2)(

)1()1(!2!0

!2)(

ttttB

tttttB

ttttB

Page 14: 3.1.2  B 样条曲线和曲面

 所以,根据式:

  二次 Bezier 曲线的表达形式为:

  P(t)=(1-t)2P0+2t(1-t)P1+t 2 P2     (0≤ t ≤ 1)

n

inii tBPtP

0, )()(

Page 15: 3.1.2  B 样条曲线和曲面

 根据 Bezier 曲线的总体性质,可讨 论二次 Bezier 曲线的性质:  P(t)=(1-t)2P0+2t(1-t)P1+t2 P2  P’(t)=2(t-1)P0+2(1-2t)P1+2tP2

  P(1/2)=1/2[P1+1/2(P0+P2)]  P(0)=2(P1-P0)  P(1)=2(P2-P1)  P(1/2)=P2-P0

P0

Pm P2

P'(1/2)P(1/2)

P1

二次 Bezier 曲 线是一条抛物线

Page 16: 3.1.2  B 样条曲线和曲面

  (2)  四个顶点 P0 、 P1 、 P2 、 P3 可 定义一条三次 Bezier 曲线:

  ***

3

2

1

0

23

33

22

12

03

0001

0033

0363

1331

1

)1(3)1(3)1()(

P

P

P

P

ttt

PtPttPttPttP

Page 17: 3.1.2  B 样条曲线和曲面

 二、 B 样条曲线

 1 . 从 Bezier 曲线到B样条曲线  (1) Bezier 曲线在应用中的不足: 缺乏灵活性 一旦确定了特征多 边形的顶点数 (m个 ) ,也就决定了曲 线的阶次 (m-1 次 ) ,无法更改;  控制性差 当顶点数较多时,曲 线的阶次将较高,此时,特征多边形 对曲线形状的控制将明显减弱;

Page 18: 3.1.2  B 样条曲线和曲面

  不易修改 由曲线的混合函数可 看出,其值在开区间 ( 0 , 1 ) 内均不为 零。因此,所定义之曲线在 ( 0 < t < 1) 的区间内的任何一点均要受到全部顶 点的影响,这使得对曲线进行局部修 改成为不可能。 (而在外形设计中,局部修改是随时要进行的)

Page 19: 3.1.2  B 样条曲线和曲面

 为了克服 Bezier 曲线存在的问题,  Gordon 等人拓展了 Bezier 曲线,就 外形设计的需求出发,希望新的曲线 要: 易于进行局部修改;    更逼近特征多边形;   是低阶次曲线。 于是,用 n 次B样条基函数替换了伯 恩斯坦基函数,构造了称之为B样条 曲线的新型曲线。

Page 20: 3.1.2  B 样条曲线和曲面

  2. B样条曲线的数学表达式 B样条曲线的数学表达式为:

  在上式中, 0 ≤ t ≤ 1 ; i= 0, 1, 2, …, m 所以可以看出:B样条曲线是分段定 义的。如果给定 m+n+1 个顶点 Pi ( i=  0, 1, 2,…, m+n) ,则可定义 m+1 段 n  次的参数曲线。

n

knkkini tFPtP

0,, )()(

Page 21: 3.1.2  B 样条曲线和曲面

 在以上表达式中:  F k,n ( t ) 为 n 次 B 样条基函数,也称B 样条分段混合函数。其表达式为:  

 式中: 0 ≤ t ≤1 k = 0, 1, 2, …, n

kn

j

njn

jnk jkntC

ntF

01, )()1(

!

1)(

Page 22: 3.1.2  B 样条曲线和曲面

 连接全部曲线段所组成的整条曲线称 为 n 次B样条曲线。依次用线段连接 点 Pi+k (k=0,1,…,n) 所组成的多边折 线称为B样条曲线在第 i段的B特征多 边形。

  

Page 23: 3.1.2  B 样条曲线和曲面

 3 . 二次B样条曲线 在二次B样条曲线中, n=2,k=0,1,2 故其基函数形式为:

  

22,2

22,1

2222

2

0

232,0

2

1)(

)122(2

1)(

)1(2

1]

!2

!3)1(

!2

!3)2(

!3

!3[

2

1

)2()1(!2

1)(

ttF

tttF

tttt

jtCtFj

jj

Page 24: 3.1.2  B 样条曲线和曲面

有了基函数,因此可写出二次B样条 曲线的分段表达式为:

   ( i= 0,1,2,…,m )  m+1段

22,212,12,0 )()()()( iiii PtFPtFPtFtP

Page 25: 3.1.2  B 样条曲线和曲面

 写成一般的矩阵形式为:

 式中,B k为分段曲线的B特征多边形 的顶点: B0,B1,B2 。对于第 i段曲线的  Bk 即为: Pi,Pi+1,Pi+2 连续的三个顶 点。  (见下图)  

2

02

1

02

2,

011

022

121

2

11)()(

kkk

B

B

B

ttBtFtP

Page 26: 3.1.2  B 样条曲线和曲面

P3

B:

P0

P0,P1,P2

P2

P1

P1,P2,P3B:

P4

n=2, 二次 B样条曲线m+n+1 个顶点,三点一段,共 m+1 段。

i=0P0,2(t)

i=1P1,2(t)

Page 27: 3.1.2  B 样条曲线和曲面

 二次B样条曲线的性质 先对 P(t) 求导得:

  然后分别将 t=0,t=0.5,t=1 代入 P(t) 和 P’(t) ,可得:  P(0)=1/2(B0+B1), P(1)=1/2(B1+B2); P’(0)=B1-B0, P’(1)=B2-B1; P(1/2)=1/2{1/2[P(0)+P(1)]+B1} P’(1/2)=1/2(B2-B0)=P(1)- P(0)

2

1

0

011

1211)(

B

B

B

ttP

Page 28: 3.1.2  B 样条曲线和曲面

 与以上这些式子所表达的性质相符的 曲线是何种形状:(见下图)

 B0

P(0)P(1)M

B2

P(1/2)

B1

P'(1/2)

是什么曲线?与 Bezier 曲线有何差别?

Page 29: 3.1.2  B 样条曲线和曲面

 结论:分段二次 B 样条曲线是一条抛 物线;有 n 个顶点定义的二次 B 样条曲 线,其实质上是 n-2段抛物线(相邻三 点定义)的连接,并在接点处达到一 阶连续。(见下图)

P3

P0

P2

P1

P4

Page 30: 3.1.2  B 样条曲线和曲面

 4 . 三次B样条曲线

 分段三次B样条曲线由相邻四个顶点 定义,其表达式为:  P( t )=F0,3(t)•B0+F1,3(t)•B1+F2,3(t)•B2      +F3,3(t)•B3    (0 t 1) 可见,由 n 个顶点定义的完整的三次 B样条曲线是由 n-3 段分段曲线连接 而成的。很容易证明,三次B样条曲 线在连接处达到二阶连续。 ***

Page 31: 3.1.2  B 样条曲线和曲面

 B样条曲线是一种非常灵活的曲线, 曲线的局部形状受相应顶点的控制很 直观。这些顶点控制技术如果运用得 好,可以使整个B样条曲线在某些部 位满足一些特殊的技术要求。如:  可以在曲线中构造一段直线;  使曲线与特征多边形相切;  使曲线通过指定点;  指定曲线的端点;  指定曲线端点的约束条件。

Page 32: 3.1.2  B 样条曲线和曲面

 三、 B 样条曲面

 在数学上,可以很容易将参数曲线段 拓张为参数曲面片。因为无论是前面 的 Bezier 曲线还是B样条曲线,它 们都是由特征多边形控制的。而曲面 是由两个方向(比如 u 和 v)的特征 多边形来决定,这两个方向的特征多 边形构成特征网格。

22

P01Pv

00P

10

u

P

P20

P02P11

P

12P

v P01P

P0020u P

10

P0221

P12

P

11P 21P

22

双二次 Bezier 曲面和B样条曲面

Page 33: 3.1.2  B 样条曲线和曲面

 1 .Bezier 曲面  给定了 (m+1)(n+1) 个空间点列 bi,j (i=0,  1,2,…,n; j=0,1,2,…,m) 后,可以定义m  n 次 Bezier 曲面如下式所示:   式中: (0 ≤ u,v ≤ 1)   ;  Bi,n(u) 为 n 次  Bernstein 基函数;连接点列 bi,j 中相 邻两点组成特征网格。

n

i

m

jjimjni bvBuBvuP

0 0,,, )()(),(

Page 34: 3.1.2  B 样条曲线和曲面

 在实际应用中,次数 m 和 n 均不宜 超过 5,否则网格对于曲面的控制力 将会减弱,这同 Bezier 曲线的情况 是相似的。其中最重要的应用是 m=n =3 ,即双三次 Bezier 曲面。 双三次 Bezier 曲面的表达式为:   

TT

i jjiji

VNbNU

bvBuBvuP

3

0

3

0,3,3, )()(),(

Page 35: 3.1.2  B 样条曲线和曲面

 式中:  

33323130

23222120

13121110

03020100

2323

0001

0033

0363

1331

1;1

bbbb

bbbb

bbbb

bbbb

b

N

vvvVuuuU

Page 36: 3.1.2  B 样条曲线和曲面

 2 . B样条曲面

 从B样条曲线到B样条曲面的拓展完 全类似于从 Bezier 曲线到 Bezier 曲面的 拓展。 给定了 (m+1)(n+1) 个空间点列 bi,j (i=0,  1,2,…,n; j=0,1,2,…,m) 后,可以定义m  n 次 B 样条曲面片如下式所示:  

n

i

m

jjimjni bvFuFvuP

0 0,,, )()(),(

Page 37: 3.1.2  B 样条曲线和曲面

 同样,式中的 Fi,n(u) 称为 n 次B样条 基函数族,连结 bi,j组成的空间网格 称为B特征网格。 在实际应用中,最为重要的一种曲面 是双三次B样条曲面片,此时 m=n=3 。 其表达式为:

  TT VNbNUvuP ),(

Page 38: 3.1.2  B 样条曲线和曲面

 式中: 

 

 其余的 [U]、 [V]和 [b]同 Bezier 曲面。

0141

0303

0363

1331

6

1N

Page 39: 3.1.2  B 样条曲线和曲面

 表达式中的矩阵展开,其实就可以得 到如类似于在曲线中的混合函数。如 展开 [U][N]可得:

  

 上面介绍的 Bezier 曲面与此相同。

33,3

233,2

233,1

233,0

6

1)(

)1333(6

1)(

)463(6

1)(

)133(6

1)(

uuF

uuuuF

uuuF

uuuuF

Page 40: 3.1.2  B 样条曲线和曲面

 

 整个B样条曲面是由B样条曲面片连 接而成的(这正如B样条曲线),并 且在连接处达到了C ²连续,这一点是 由三次B样条基函数族 Fi,j(u) 的连续 性保证的。所以,双三次B样条曲面 的突出特点就在于相当轻松地解决了 曲面片之间的连接问题。

                       ***