当前位置:文档之家› B样条曲线与曲面..

B样条曲线与曲面..

B样条曲线与曲面..
B样条曲线与曲面..

四、B 样条曲线与曲面

Bezier 曲线具有很多优越性,但有二点不足:

1)特征多边形顶点数决定了它的阶次数,当n 较大时,不仅计算量增大,稳定性降低,且控制顶点对曲线的形状控制减弱;

2)不具有局部性,即修改一控制点对曲线产生全局性影响。

1972年Gordon 等用B 样条基代替Bernstein 基函数,从而改进上述缺点。 B样条曲线的数学表达式为:

∑=+?=

n

k n k k

i n i u N P

u P 0

,,)

()(

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

在以上表达式中:

N k,n (u) 为 n 次B 样条基函数,也称B样条分段混合函数。其表达式为:

-=+--+??-=k

n j n

j n j n k j k n u C n u N 0

1,)()1(!1)(

式中:0 ≤ u ≤1

k = 0, 1, 2, …, n

1.均匀B 样条曲线

1

一次均匀B 样条曲线的矩阵表示

空间n+1个顶点

i P (i = 0,1,…,n )定义n 段一次(k =0,1,n=1)均匀B 样条曲线,即每

相邻两个点可构造一曲线段P i (u ),其定义表达为:

[]10 ;,...,1 0111 1)(1≤≤=???

?????????-=-u n i u u P i i i P P

=(1-u )P i -1 + u P i

= N 0,1(u )P i -1 + N 1,1(u )P i

第i 段曲线端点位置矢量:i

i i i P P P P ==-)1(,)0(1,且一次均匀B 样条曲线就是控制多边

形。

2 二次均匀B 样条曲线的

空间n+1个顶点的位置矢量

i P (i=0,1,…,n )定义n -1段二次(k =0,1,2, n=2)均匀

B 样条曲线,每相邻三个点可构造一曲线段P i (u )(i=1,…,n -1),其定义表达为:

[

]

10 ;1,...,1 011022121 12

1

)(112

≤≤-=

?????

???????????????--=+-u n i u u u P i i i i P P P

= !21(1 - 2 u + u 2)P i -1 + !21(1 + 2 u - 2u 2)P i + !21

u 2 P i +1

= N 0,2(u )P i -1 + N 1,2(u )P i + N 2,2(u )P i +1

端点位置矢量:

)(5.0)0(1i i i P P P +=-,)(5.0)1(1++=i i i P P P ,即曲线的起点和终点分

别位于控制多边形P i-1P i 和P i P i+1的中点。若1-i P 、i P 、1+i P 三个顶点位于同一条直线上,)(u P i 蜕

化成

1-i P i P 1

+i P 直线边上的一段直线。

端点一阶导数矢量:

1)0(--=i i i P P P ,i i i P P P -=+1)1(,i i i P P P -='+1)0(,

1

2)1(++-='i i i P P P ,即曲线的起点切矢和终点切矢分别和二边重合,且相邻两曲线段在节点处

具有一阶导数连续。

二阶导数矢量:

)

()1(2)0(11t P P P i i i i i i ''=''=+-=''+-P P P ,即曲线段内任何点

处二阶导数相等,且相邻两曲线段在节点处二阶导数不连续。

3

三次均匀B 样条曲线

空间n+1个顶点的位置矢量

i P (i=0,1,

。。。,n )构造n -2段三次(k =0,1,2,3,四阶n=3)

均匀B 样条曲线段,每相邻四个点可定义一曲线段P i (u )(i=1,。。。,n -2),其定义表达为:

[

]

10 ;2,...,1 0141

030303631331 16

1)(2112

3

≤≤-=??

???

?

?

????????????

??

???----=

++-u n i u u u u P i i i i i P P P P

= !31(1-u )3 P i -1+!31(4-6u 2+3u 3)P i +!31(1+3u +3u 2-3u 3)P i +1+!31

u 3

P i +2

= N 0,3(u )P i -1 + N 1,3(u )P i + N 2,3(u )P i +1+ N 3,3(u )P i +2

端点位置矢量:)4(61)0(11+-++=i i i i P P P P ,)

4(61)1(21++++=i i i i P P P P ,即起点位于

三角形?P i-1P i P i+1中线P i M 1的1/3处,终点位于三角形?P i P i +1P i+2中线P i +1M 2的1/3处。可见B 样条曲线的端点并不通过控制点。

端点一阶导数矢量:

2

/)()0(11-+-='i i i P P P ,

)

0(2/)()1(12++'=-='i i i i P P P P ,即曲线起

点的切矢平行于?P i-1P i P i+1的底边P i-1P i+1,其模长为底边P i-1P i+1长的1/2,同样曲线终点的切矢平行于?P i P i+1P i+2的底边P i P i+2,其模长也为底边P i P i+2长的1/2。且相邻两曲线段具有一阶导数连续

(因)0()1(1'

='+i i P P )。

二阶导数矢量:

112)0(+-+-=''i i i i P P P P ,)0(2)1(121+++''=+-=''i i i i i P P P P P ,即曲线

段在端点处的二阶导数矢量等于相邻两直线边所形成的平行四边形的对角线,且两曲线段在节点处具有二阶导数连续(因

)0()1(i i P P ''='')

1-i P 、i P 、1+i P 三个顶点位于同一条直线上,三次均匀B 样条曲线将产生拐点;若1-i P 、

i P 、1+i P 、2+i P 四点共线,则)(u P i 变成一段直线;若1-i P 、i P 、1+i P 三点重合,则)(u P i 过i

P 点。

思考:用作图法绘制下图均匀三次B 样条曲线。

B 样条曲线段与段之间具有天然的连续性,具有整体的光滑特性,而Bezier 曲线段与段之间必须光滑拼接。因此在商用系统中B 样条方法应用更为广泛。

2.B 样条曲线的性质

1

局部性

空间n+1个控制顶点i P (i=0,1,…,n )构造(n -k +1)段k 次(k +1阶)B 样条曲线段,

且每一曲线段

i P (u )(i = 1,…,n -k +1)由1-i P 、i P 、…、1-+k i P 等k +1个控制顶点确定,

与其它控制点无关。

2

整体性和连续性

一般情况下(即无重节点、重顶点),n+1个控制顶点所构造的(n -k +1)段k 次(k +1阶)B 样条曲线段组成一完整的B 样条曲线,曲线段与段之间具有C

k -1

阶函数连续性(或G

k -1

几何连续性),当有K 重顶点时,将可能产生尖点(前面已介绍),虽然仍满足函数连续,但不满足几何连续。

4

几何不变性

改变坐标系不改变曲线形状。

5

变差缩减性

与Bezier 曲线性质相同。

(5)造型的灵活性

由于其良好的局部特性,可以方便构造低次的复杂曲线,且编辑顶点对曲线形状的改变是局部的;

由于其整体性和连续性,曲线具有整体的光滑性。

正因如此,B 样条曲线比Bezier 应用更为广泛,为商用系统普遍采用。 缺点:首末两端点不通过控制顶点,与其优点比较微不足道。

3.均匀双二次B 样条曲面

已知曲面的控制点

)

2,1,0,(=j i ij P ,参数w u ,,且[]10,,∈

w u ,2==l k ,构造步骤是:

a 、沿w 向构造均匀二次B 样条曲线,即有:

[

]

??

???

?????=????????????????????-=0201000201002

0 011022-121 1P P P WM P P P P w w w )(

经转置后:[]T

T B w W M P P P P 0201000=)(

同上可得:

[]T

T

B w W M P P P P 1211

10

1=)(,[]T

T B w W M P P P P 2221202=)(。

b 、再沿u 向构造均匀二次B 样条曲线,即可得到均匀二次B 样条曲面:

T

T B B B w w w w u W M P P P P P P P P P UM P P P UM S ????

?

?????=??????????=2221

20

1211100201

00

210)()()(),(

简记为:T

T B B w u W PM U M S =),(。

4.均匀双三次B 样条曲面

已知曲面的控制点

)

3,2,1,0,(=j i j i P ,参数w u ,,且[]10,,∈

w u ,3==l k ,构造双三次

B 样条曲面的步骤同上述。

a 、沿w 向构造均匀三次B 样条曲线,有:

[]T T

B w W M P P P P P 030201000=)(,[]T

T

B w W M P P P P P 1312

1110

1=)(,

[]T T B w W M P P P P P 232221202=)(,[]T T

B w W M P P P P P 333231303=)(

b 、再沿u 向构造均匀三次B 样条曲线,此时可认为顶点沿滑动,每组顶点对应相同的,当值由0到1连续变化,即形成均匀双三次B 样条曲面。此时表达式为:

T T B

B B w w w w w u W PM UM P P P P UM S =????

??

??????=)()()()(),(3210,

????????????=3332

31

30

2322212013121110

03020100P P P P P P P P P P P P P P P P P ,

??????

???

???---=0141030303631331

61B M

上式也可表达为:

S (u,w )= [N 0,3(u) N 1,3(u) N 0,3(u) N 0,3(u) ] [ P i j ]4x4 [N 0,3(w) N 1,3(w) N 2,3(w) N 3,3(w) ]T

对于由控制点

)

,...,1,0,

,...,1,0(n j m i ==j i P 组成的均匀双三次B 样条曲面其定义如下:

[]??

?

??

?

?????????????????

??

?=++++++++++++++++++++++++)()()()()()()()(),(3,33,23,13,03,32

,31

,3,33,22,21,2,23,12,11,1,13,2,1,,3,33,23,13,0,w N w N w N w N P P P P P P P P P P P P P P P P u N u N u N u N w u S j i j i j i j i j i j i j i j i j i j i j i j

i j i j i j i j

i j i

即任意单张均匀双三次B 样条曲面片S i,j (u ,w)是由P k,l (k = i, ... , i+3, l = j, … , j+3)等16个控制点定义而成。

B 样条曲面具有B 样条曲线的多种性质,曲面片与片之间具有天然的连续性。仍以均匀双三次曲面为例的说明B 样条曲面的性质。

(1)均匀双三次B 样条曲面的顶点不经过任何特征网格顶点,且仅与各角点对应的9个特征网格顶点有关,如:S i j (0,0)= 1/36 (P i, j +P i, j+2 +P i+2, j +P i+2, j+2) + 1/9 (P i, j+1 +P i+1, j +P i+2, j+1 +P i+1, j+2) + 4/9 P i +1,j+1,同理可得S i j (0,1)

、S i j (1,0)、S i j (1,1)。 (2)均匀双三次B 样条曲面的边界曲线仍为B 样条曲线,该边界B 样条曲线由对应的三条边界特征网格顶点确定,由B 样条曲面得定义可得:

[][]????

??

?

????

???++++++++=?????

?

?????????

????????

??

?=+++++++++++++++++++++++++++++++++++++++++2,31,3,32,21,2,22,11,1,12,1,,3,33,23,13,03,32

,31,3,33,22,21,2,23,12,11,1,13,2,1

,,3,33,23,13,0,6/13/26/16/13/26/16/13/26/16/13/26/1)()()()(06/13/26/1)()()()()0,(j i j i j i j i j i j i j i j i j i j i j i j i j i j i j i j i j i j i j i j i j i j i j i j

i j i j i j i j

i j i P P P P P P P P P P P P u N u N u N u N P P P P P P P P P P P P P P P P u N u N u N u N u S

同理可得S i j (u ,1)、S i j (0,w )、S i j (1,w )。推广之:沿B 样条曲面任何等参数的截线

均为一B样条曲线(读者证明)。

(3)均匀双三次B样条曲面边界的跨界一阶切矢只与定义该边界的顶点及相邻二排顶点(共三排顶点)有关,

[]

[]

[]

[]

)1, (

6/1

3/2

6/1

6/1

3/2

6/1

6/1

3/2

6/1

6/1

3/2

6/1

)

(

)

(

)

(

) (

6/1

3/2

6/1

)

(

)

(

)

(

)

(

)0,

(

6/1

3/2

6/1

6/1

3/2

6/1

6/1

3/2

6/1

6/1

3/2

6/1

)

(

)

(

)

(

) (

6/1

3/2

6/1

)

(

)

(

)

(

)

(

)1, (

,1

2

,3

1

,3

,3

2

,2

1

,2

,2

2

,1

1

,1

,1

2

,

1

,

,

3,3

3,2

3,1

3,0

3

,3

2

,3

1

,3

,3

3

,2

2

,2

1

,2

,2

3

,1

2

,1

1

,1

,1

3

,

2

,

1

,

,

3,3

3,2

3,1

3,0

,

2

,3

1

,3

,3

2

,2

1

,2

,2

2

,1

1

,1

,1

2

,

1

,

,

3,3

3,2

3,1

3,0

2

,3

1

,3

,3

1

,3

2

,2

1

,2

,2

1

,2

2

,1

1

,1

,1

1

,1

2

,

1

,

,

1

,

3,3

3,2

3,1

3,0

1

,

u S

P

P

P

P

P

P

P

P

P

P

P

P

u

N

u

N

u

N

u N

P

P

P

P

P

P

P

P

P

P

P

P

P

P

P

P

u

N

u

N

u

N

u

N

u

S

P

P

P

P

P

P

P

P

P

P

P

P

u

N

u

N

u

N

u

N

P

P

P

P

P

P

P

P

P

P

P

P

P

P

P

P

u

N

u

N

u

N

u

N

u S

j i

u

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j i u

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j

i

j i u

-

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

-

+

+

+

+

+

+

-

+

+

+

+

+

+

-

+

+

+

-

-

' =

?

?

?

?

?

?

?

?

?

?

?

?

?

?

+

+

+

+

+

+

+

+

'

'

'

'

=

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

'

'

'

'

=

'

?

?

?

?

?

?

?

?

?

?

?

?

?

?

+

+

+

+

+

+

+

+

'

'

'

'

=

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

'

'

'

'

=

'

依次可得

)

,1(

),

,0(

),1,

(

,

,

,

w

S

w

S

u

S

j

i

w

j

i

w

j

i

u

'

'

'

。可见均匀三次B样条曲面具有一阶函数连

续性。

同理可得

)

,1(

),

,0(

),1,

(

),0,

(

,

,

,

,

w

S

w

S

u

S

u

S

j

i

w

j

i

w

j

i

u

j

i

u

''

''

''

''

,其跨界二阶导矢只与定义

该边界的及相邻两排顶点(共三排顶点)有关,且均匀三次B样条曲面具有二阶函数连续性。

(4)几何不变性。

(5)对称性。

(6)凸包性。

B样条曲面的线框图绘制方法:先沿等参数方向离散成网格点,然后依次连线绘制。

由此可见,B 样条方法能够很方便绘制复杂曲面,显然比Bezier 方法更灵活,因此应用更广泛。

5.B 样条曲线与曲面的递推表达

1)B 样条曲线的定义 定义:

由前面的内容得知,三次均匀B 样条曲线的基函数为:

N 0,3(u )= !31(1-u )3 N 1,3(u )= !31

(4-6u 2+3u 3) N 2,3(u )= !31(1+3u +3u 2-3u 3) N 3,3(u )= !31

u 3

上述基函数图形如下图所示:

已知n+1个控制点i P (i=0,1,

。。。,n ),也称为特征多边形的顶点,K 次(k +1阶)B 样条

曲线的表达式是:

∑==n

i k i i u N u 0

,)

()(P C k <= n

其中

)

(,u N k i 是调和函数,也称为基函数,按照递归公式可定义为:

?

??

???

?????=>--+--=????

?≤=+++-++++-+00/00 )()()()()(

1)(111,111,,10,k t t u N u t t t u N t u u N t u t u N i k i k i k i i k i k i i k i i i i 其它若

式中i t

是节点值,且为非减序列,

[]

110,...,,++=k n t t t T 构成了K 次(k +1阶)B 样条基函数

的节点矢量,每一基函数由对应的K +2个节点决定;

上式也表明,高次B 样条函数可用低次的B 样条函数来表示,由此式可得其递推计算方法。 由基函数的示意图可知B 样条基函数具有局部支撑特性,即

[]??

??=∈≥=++++]

,[0

,0

)(11,k i i k i i k i t t x t t x u B

节点矢量所含节点数目由控制顶点P i (i =0,1,。。。,n )和曲线次数k 所确定(节点数=n +k +2),显然,基函数个数 = 控制点数。

当节点沿参数轴是均匀等距分布的,则表示均匀B 样条函数,其节点值t i -t i -1 = 常数; 例如:当k = 3,t i -t i -1 = 1,[]

1,0∈u ,则上述基函数可表示为均匀三次B 样条函数,

并通过变换可得如下表达:

N i ,3(u )= !31

(1-u )3

N i+1,3(u )= !31

(4-6u 2+3u 3) N i+2,3(u )= !31

(1+3u +3u 2-3u 3)

N i+3,3(u )= !31

u 3

当节点沿参数轴的分布是不等距的,则表示非均匀B 样条函数,即节点值t i -t i -1 ≠ 常数。 均匀B 样条和非均匀B 样条曲线一般不通过控制多边形首末两点。若需B 样条曲线具有较好的端点性质(即通过端点),实际应用中常引入准均匀B 样条,即在节点矢量中两端节点具有k +1个重复度:

t 0 = t 1 = …… = t k , t n+1 = t n+2 = …… = t n+k+1 。

这样构造的准均匀B 样条曲线将通过控制多边形首末两点。下图为例:构造n = 5,k = 2的准均匀B 样条曲线的节点矢量为u = [ 0,0,0,1,2,3,4,4,4 ]。

当n = 7,k = 3的准均匀三次B 样条曲线的节点矢量可定义为u = [ 0,0,0,0,1,2,3,4,5,5,5,5]。

若n = 3,k = 3的节点矢量u = [ 0,0,0,0,1,1,1,1 ],此时三次B 样条曲线转化为三

次Bezier 曲线。推而广之,若n = k ,节点矢量为]1,......,1,0,......,0[1

1

++=k k u ,此时K 次B 样条曲线

为K 次Bezier 曲线。

性质:

局部性:

K 次B 样条曲线仅在K +1个区间内非0。换句话说,每段k 次B 样条曲线只涉及k +1个基函数,并由k +1个顶点所定义。

第i 段K 次B 样条曲线仅由P i ,P i +1,。。。,P i +k 共k +1个顶点所控制,与其它点无关;反之,修改一个控制顶点,其影响范围为与该顶点有关的k +1段。

凸组合性质(凸包性) 连续性:

在无重节点的情况下,K 次B 样条在节点处具有k -1次连续性,如三次B 样条具有二阶连续; 若在某节点处具有m 重节点,则K 次B 样条在该节点处连续性K -1阶。 利用重节点技巧,可获得一些特殊的几何特性。 递推特性

2)B 样条曲面的定义

基于B 样条曲线的定义和性质,可以得到B 样条曲面的定义。给定)()(11+?+n m 个空间点列

n

,,,j m;,,,i ,, 1010==j i P ,则

)()(),(0,,0

,∑∑===m

i l j k i n

j j i w N u N w u P S

定义了l k ?次((k +1)x (l +1)阶)B 样条曲面, )

(,u N k i 和

)

(,w N l j 是k 次(k +1阶)和l 次

(l +1阶)的B 样条基函数,u 和w 为B 样条基函数

)(,u N k i 和

)

(,w N l j 的节点参数,由

j

i ,P 组成的

空间网格称为B 样条曲面的特征网格。上式也可以写成如下的矩阵形式:

[][]k n s k m r w u T

l

T l kl k k s r -∈-∈=,0,,0),(,W M P M U S

上式中(r +1),(s +1)分别表示在u ,w 参数方向上曲面片的个数。

[][]

[][]

l s s j k r r i w w w u u u j i kl l l l k k k +∈+∈===--, ,, ][1

,,...,, ,1,,...,,,11P P W U

式中

kl P 是某一个B 样条曲面片的控制点编号。

性质

(1)K x L 次B 样条曲面片的四个角点不经过任何特征网格顶点,且仅与该角点对应的K x L 个特征网格顶点有关,如均匀双三次B 样条曲面与对应的9个顶点有关。

(2)B 样条曲面的边界曲线仍为B 样条曲线,该边界B 样条曲线由对应的K 条(或L 条)边界特征网格顶点确定。如均匀双三次B 样条曲面边界曲线仅与三排顶点有关。

推广:沿B 样条曲面任何等参数的截线均为一B 样条曲线。

(3)B 样条曲面边界的跨界导数只与定义该边界的顶点及相邻K -1排(或L -1排)顶点有关,具有(K -1)x (L -1)阶函数连续性。

(4)几何不变性。 (5)对称性。 (6)凸包性。

第七章 曲线与曲面积分导学答案12-16(第一、二类曲面积分)

第七章 曲线与曲面积分 7.2.5第一类曲面积分 7.2.6 第二类曲面积分(导学解答) 一、相关知识 1.物质曲面的质量问题? 答:设∑为面密度非均匀的物质曲面, 其面密度为ρ(x , y , z ), 求其质量,把曲面分成n 个小块: ?S 1, ?S 2 , ? ? ?, ?S n (?S i 也代表曲面的面积);求质量的近似值: i i i i n i S ?=∑),,(1 ζηξρ((ξi , ηi , ζi ) 是?S i 上任意一点); 取极限求精确值: i i i i n i S M ?==→∑),,(lim 1 0ζηξρλ(λ为各小块曲面直径的最 大值). 2.空间曲面在坐标面上的有向投影? 答:空间面积为S ?的有向平面在坐标面上的投影 将有向平面S ?投影到xoy 坐标面,所得投影记为xy S )(?,投影区域的面积记为()xy σ?;设平面S ?的法向量n 与z 轴正向的夹角为γ,则 ()xy S ?()c o s 0 0c o s 0 () c o s 0 xy xy σγγσγ??>? =≡? ?-?γ(上侧), 则xy xy S )()(σ?=?;如果 πγπ ≤<2 ,0cos <γ(下侧),则xy xy S )()(σ?-=?;如果 2 π γ= ,0cos =γ,则0cos )(=?=?S S xy γ。 同理可以定义S ?在yoz 、zox 坐标面上的投影为()yz S ?及()zx S ?为: ()cos 0()0 cos 0() cos 0yz yz yz S σαασα??>? ?=≡??-??? ?=≡? ?-?

B样条和贝塞尔曲线曲面的拼接

实验二曲线曲面的拼接贝塞尔曲线的拼接 P=[-1 2 3.5 4 4.5 6 7;7 5 6 6.5 7 3 9;2 6 4 4.5 5 11 9]; plot3(P(1,1:4),P(2,1:4),P(3,1:4),'o') hold on plot3(P(1,4:7),P(2,4:7),P(3,4:7),'+'); hold on B=[-1 3 -3 1;3 -6 3 0;-3 3 0 0;1 0 0 0]; for t=0:0.05:1 T=[t^3 t^2 t 1]; P1=T*B*P(1,1:4)'; P2=T*B*P(2,1:4)'; P3=T*B*P(3,1:4)'; plot3(P1,P2,P3,'r.') hold on Q1=T*B*P(1,4:7)'; Q2=T*B*P(2,4:7)'; Q3=T*B*P(3,4:7)'; plot3(Q1,Q2,Q3,'b*') end title('贝塞尔曲线的拼接'); xlabel('x');ylabel('y');zlabel('z');

B样条曲线的拼接 P=[1 2 3 4 5;1.5 7 6 6.5 7;3 1.5 3.5 5.5 4.5]; plot3(P(1,1:4),P(2,1:4),P(3,1:4),'o') hold on plot3(P(1,2:5),P(2,2:5),P(3,2:5),'+') hold on B=[-1 3 -3 1;3 -6 3 0;-3 0 3 0;1 4 1 0]; for t=0:0.05:1 T=[t^3 t^2 t 1]; P1=1/6*T*B*P(1,1:4)'; P2=1/6*T*B*P(2,1:4)'; P3=1/6*T*B*P(3,1:4)'; plot3(P1,P2,P3,'r.') hold on Q1=1/6*T*B*P(1,2:5)'; Q2=1/6*T*B*P(2,2:5)'; Q3=1/6*T*B*P(3,2:5)'; plot3(Q1,Q2,Q3,'b*'); end title('B样条曲线的拼接'); xlabel('x');ylabel('y');zlabel('z');

B样条曲线曲面和NURBS曲线曲面C语言算法源程序

学习小结:前面学习了Bezier 曲线,B 样条基函数和B 样条曲线的一些基础知识。掌握关键问题是一条B 样条曲线间的多段曲线的光滑连接。因为现在是用多段Bezier 曲线来描绘一条B 样条曲线,所以问题变为两段Bezier 曲线间光滑连接。两段Bezier 曲线段(3次)B1和B2光滑连接的条件: (1).要求B1和B2有共同的连接点,即G 0 连续。 (2).要求B1和B2在连接点处有成比例的一阶导数,即G 1 连续。由端点处的一阶导数 )(3)0(2),(3)1(10123Q Q B P P B -='-=',为实现G 1连续,则有: )1(1)0(2B B '=' 即:2301P P Q Q -=- 这也表明,1032),(,Q Q P P 三点共线。如下图表示了一条3次B 样条曲线的所有控制多边形: 1 ) P 2 P 3 P 4 (P 11 12 ) P 5 P 10 0 P 6 P 9 7 P 8 图5.3次B 样条曲线和所有控制多边形 图5中,P0至P6为原始3次B 样条曲线控制多边形顶点,P 0至P 12 是计算后最终形成B 样条曲线控制多边形顶点。 图6.双二次(2x2)B 样条曲面 6.B 样条曲线曲面和NURBS 曲线曲面的C 语言实现算法源程序 #ifndef _mynurbs_h #ifndef _MYNURBS_H

#include "gl\gl.h" #include "math.h" //*-*-*-*-*-*-*-*-*-*-*-*-*-*-* B样条基函数计算部分 *-*-*-*-*-*-*-*-*-*-*-*-*-* //确定参数u所在的节点区间下标 //n=m-p-1 //m为节点矢量U[]的最大下标 //p为B样条函数次数 int FindSource(int n,int p,float u,float U[]) { int low,high,mid; if(u==U[n+1])//特殊情况 return n; //进行二分搜索 low=p; high=n+1; mid=(int)(low+high)/2; while(uU[mid]) { if(u=U[mid]&&u=i-k;di--) { if(u>=U[di]&&u

B样条曲线与曲面

四、B 样条曲线与曲面 Bezier 曲线具有很多优越性,但有二点不足: 1)特征多边形顶点数决定了它的阶次数,当n 较大时,不仅计算量增大,稳定性降低,且控制顶点对曲线的形状控制减弱; 2)不具有局部性,即修改一控制点对曲线产生全局性影响。 1972年Gordon 等用B 样条基代替Bernstein 基函数,从而改进上述缺点。 B样条曲线的数学表达式为: ∑=+?= n k n k k i n i u N P u P 0 ,,) ()( 在上式中,0 ≤ u ≤ 1; i= 0, 1, 2, …, m 所以可以看出:B样条曲线是分段定义的。如果给定 m+n+1 个顶点 Pi ( i=0, 1, 2,…, m+n),则可定义 m+1 段 n 次的参数曲线。 在以上表达式中: N k,n (u) 为 n 次B 样条基函数,也称B样条分段混合函数。其表达式为: ∑ -=+--+??-=k n j n j n j n k j k n u C n u N 0 1,)()1(!1)( 式中:0 ≤ u ≤1 k = 0, 1, 2, …, n 1.均匀B 样条曲线 1 一次均匀B 样条曲线的矩阵表示 空间n+1个顶点 i P (i = 0,1,…,n )定义n 段一次(k =0,1,n=1)均匀B 样条曲线,即每 相邻两个点可构造一曲线段P i (u ),其定义表达为: []10 ;,...,1 0111 1)(1≤≤=??? ?????????-=-u n i u u P i i i P P =(1-u )P i -1 + u P i = N 0,1(u )P i -1 + N 1,1(u )P i 第i 段曲线端点位置矢量:i i i i P P P P ==-)1(,)0(1,且一次均匀B 样条曲线就是控制多边 形。

B样条曲线曲面的性质及其生成算法的研究

B样条曲线曲面的性质及其生成算法的研究 XXX (XXX学院数学与信息科学学院05级信本(2)班) 摘要 从B样条曲线曲面的定义入手,阐述了B样条曲线曲面的性质,在生成算法中提出了一个扩展B样条曲线曲面的新方法.扩展B样条曲线曲面的关键是为新增加的点确定节点值.生成算法的基本思想是:首先,B样条曲线和扩展部分在连接点处满足2 GC连续,用能量极小化方法确定扩展部分的曲线形状,通过对曲线重新参数化使两部分曲线满足2 C连续,进而确定新增加点的节点值.文章还讨论了运用该方法进行B样条曲面扩展,且以实例对新方法与其它方法进行了比较. 关键词:B样条曲线; B样条曲面;参数化;曲线扩展 Research On The Nature Of B-spline Curves And Surfaces And Their Generation Algorithm Yongning Zhang College of Mathematics and Information Science , Xianyang Normal University , Information Class 05(2) Abstract First, the definitions of B-spline curves and surfaces are introduced, and then the nature of B-spline curves and surfaces are studied. On the final, a new generation algorithm on expansion of B-spline curves and surfaces is proposed. The key thought of expansion of B-spline curves and surfaces is to determine the value of the new points. The basic idea of generation algorithm is: First of all, B-spline curve and the extension of the connecting points in a row to meet with the energy minimization method to determine the extension of the curve shape of the curve through re-parameterized so that the two parts meet the continuous curve, and then determine the new value of the node points. The article also discussed the use of the method of B-spline surfaces expansion, and compared an example of the new method with other methods. Keywords: B-spline curve; B-spline surfaces; parameter; curve extension

b样条曲面

B样条曲面的算法生成及研究 本文由天空乐园大学生旅游网整理分享 摘要 本文主要介绍B样条曲面的性质、算法、以及应用,让我们对B样条曲面有一个全面的了解。B样条曲面不仅在保留了Bézier曲面的优点的同时克服了由于整体表示带来的不具有局部性质的特点,而且成功地解决了样条函数的局部控制问题,轻而易举地在参数连续性上解决了贝奇尔方法的连接问题,是最广泛流行的形状数学描述的主流方法之一。B样条曲面中均匀双三次B样条曲面又是各种B 样条曲面中应用最多的一种之一,它避免了B 样条递推定义的繁琐算法,只要给出的空间型值点大致均匀,即可生成空间任何形状的曲面。而非均匀有理B样条曲面( NU RBS ) 是曲面构造的常用工具, 是目前工业界曲面曲线表示的数学标准。B-样条曲面是一种特殊NU RBS , 在实际应用中是首选形式。在本文中我们主要介绍了均匀双三次B样条曲面。 关键词:B样条曲面非均匀B样条曲面双三次均匀B样条曲面 B样条基函数 1 引言 计算机运用技术的不断发展使得CAD/CAM技术日益提高和完善,为实现工业生产过程自动化展示了光明的前景。目前,利用程序系统对某一产品实现机辅设计和数控加工的自动化过程已经开始。然而在实际生产中,数控机床的使用还很不普遍,大部分数控机床仍靠手工编程来实现单一加工。这除了数控设备价格昂贵之外,控制程序系统的设计难度较大也是重要原因之一。譬如,对数控铣削加工控制程序系统的设计,尤其是在数控铣床上加工任意形状曲面的程序系统设计, 目前还处于探讨摸索之中。随着汽车、船舶、航空工业的发展,对于工业产品的形状描述也就提出了越来越高的要求。工业产品的形状大致可以分为两类:一类是仅有初等解析曲面,例如平面、圆柱面、圆锥面、球面以及它们组合而成的规则曲面;另一类是不能由任何解析表达的自由型曲面。汽车、船舶、飞机的外部零件基本上都是自由曲面。而自由曲面不能由画法几何与机械制图表达清楚,成为摆在工程师面前首要解决的问题。De Boor(德布尔)与1971年给出了关于B 样条的一套标准算法。美国通用公司的戈登和里森费尔德于1974年将B样条理论应用于形状描述,提出了B样条曲线曲面。它将成功地解决了样条函数的局部控制问题,又轻而易举地在参数连续性上解决了贝奇尔方法的连接问题,是最广泛流行的形状数学描述的主流方法之一。该算法能显著提高效率。现在提出了B 样条曲面等测投影的建立方法,讨论用高性能的动态数组和Excel 软件存储任意数量控制点的实现方法等关键技术。采用Visual C++6.0 为编程工具开发软件系统,实现了任意数量控制点的双三次B 样条曲面生成。B 样条曲面在保留了Bezier 曲面的优点的同时,又克服了由于整体表示带来的不具有局部性质的特点,是目前工程中应用最多的一种曲面,有人甚至称之为“统一当代的B 样条曲面”。而均匀双三次B 样条曲面又是各种B 样条曲面中应用最多的一种之一,它避免了B 样条递推定义的繁琐算法,只要给出的空间型值点大致均匀,即可生成空间任何形状的曲面。随着B 样条方法,NURBS,的产生和发展,曲面的样条表示形式逐渐被引入到曲面设计中,较早的有Bloor 等使用B 样条作为双调和方程的解. 后来, Terzopoulos 等[提出了一种动态NURBS方法,其用一个二阶微分方 程来决定DNURBS 的演化,但该方程不是几何内蕴的,且无法获得NURBS片的 G1光滑拼接.最近,徐国良[12 ] 提出一种新的方法,通过整合B样条曲面和一般形

CATIAV5-6R2013中文版曲面设计教程第七章曲线曲面分析

第7章 曲线曲面分析 本章导读: 完成曲面模型之后,进行曲线曲面的分析,便于查找设计中的矛盾和不符合要求的地方。曲线曲面分析包括曲线连续性和曲率分析、距离、截面曲率、反射、曲率、拐点曲线、高亮、环境和斑马线分析这些命令,本章主要对这些内容进行介绍。

196 7.1 曲线分析 曲线分析包括曲线连续性分析和曲线曲率梳分析,在曲线分析当中要经常用到这两种方法。 7.1.1 曲线连续性分析 单击【形状分析】工具栏上的【连接检查器分析】按钮,系统弹出如图7-1所示的【连接检查器】对话框。单击【元素】选项组中的【源】和【目标】文本框,从绘图区中选择分析元素。从【类型】选项组中选择分析类型,分别是【曲线-曲线连接】、【曲面-曲面连接】、【曲面-曲线连接】、【边界】、【投影】。在【快速】选项卡中设置简单分析条件,分别是G0、G1、G2、G3、【交叠缺陷】,在其后的微调框中输入分析的最小数值。 图7-1 【连接检查器】对话框 单击【显示】选项组中的【有限色标】按钮,系统弹出如图7-2所示的【连接检查器分析】对话框。单击【完整色标】按钮,系统弹出如图7-3所示的【连接检查器分析】对话框。 按下【梳】 开关按钮,图形中显示分析结果,如图7-4所示。按下【包络】 开关按钮,图形中显示分析结果,如图7-5所示。在【连接】选项组中【最小间隔】和【最大间隔】微调框中输入分析的范围。在【信息】选项组中设置显示内容,分别是【最大值】、【最小值】、【G1模式下的相切】、【G2模式下的凹面】。在【离散化】选项组中设置显示离散程度,分别是【轻度离散化】、【粗糙离散化】、【中度离散化】、【精细离散化】。在【最大偏差】选项组中显示G0、G1、G2、G3模式下的最大偏差值。

b样条曲面

实验四:B 样条曲面 一.实验目的 用多个B 样条曲线画出一个曲面,并能实现鼠标球滚动。 二.算法思想 B 样条曲面是B 样条曲线的拓广。一块m ?n 次B 样条曲面片的数学表示式:)()(),(,,00 w F u F P w u P n j m i m i n j ij ∑∑=== w u , ∈[0,1] 式中,ij P (i =0,1,2,…..,m; j =0,1,2,…..n )是定义此曲面片的顶点位置向量矩阵,共计(m+1) (n+1)个顶点。)()(,,w F u F n j m i 为B 样条基底函数,w u ,为参数。显然,m 与n 不一定相等,如m=n=3,则由4?4个顶点构成特征多面体,其相应的B 样条曲面片称为双三次 B 样条曲面片。其中: m i m i m k k m i k i m u c m u F )()1(!1 )(10 ,--+-= +-=∑ )! 1(!)!1(1i m i m C i m -++= +其中: 展开三次B 样条曲面数学表达式并写成矩阵 ()()( ) () T T s T s W M w w w w F w F w F w F UM u u u u F u F u F u F w F w F w F w F p p p p p p p p p p p p p p p p u F u F u F u F w u Q =?????? ? ??????????????----= =????? ???????----=????????????????????? ???=100 1 13334063133161)() ()() (01 4 1 03030 3631331611 )() ()() ()()()()()() ()() (),(2343212 3 432143213332 31 30 2322212013121110 030201004321其中: 三.程序主要代码 #include #include #include "ggltools.h" #include "gmatrix3d.h" #include "gvector3d.h" GMatrix3d gRotMatrix ; bool gIsLBtnDown =false ; int gMouseX =0; int gMouseY =0; //控制点网络 GPoint3d **gCtrlGrid =NULL ; //

B样条曲线曲面和NURBS曲线曲面C语言算法源程序

图6.双二次(2x2)B 样条曲面 6.B 样条曲线曲面和 NURBS 曲线曲面的C 语言实现算法源程序 #ifndef _mynu rbs_h #ifndef MYNURBS H 学习小结:前面学习了 Bezier 曲线,B 样条基函数和 B 样条曲线的一些基础知识。掌握关 键问题是一条B 样条曲线间的多段曲线的光滑连接。因为现在是用多段 Bezier 曲线来描绘 一条B 样条曲线,所以问题变为两段 Bezier 曲线间光滑连接。两段 Bezier 曲线段(3次) B1和B2光滑连接的条件: (1) .要求B1和B2有共同的连接点,即 &连续。 (2) .要求B1和B2在连接点处有成比例的一阶导数,即 G 连续。由端点处的一阶导数 1 B1(1) 3(F 3 P 2), B 2(0) 3(Q i Q 。) ,为实现 G 连续,则有: B 2(0) B1(1) 即: Q 1 Q o R P 2 这也表明,P 2, B (Q o ),Q 三点共线。如下图表示了一条 3次B 样条曲线的所有控制多边形: E(P 1) P2 (P / P 用P 0 10 P4 图5.3次B 样条曲线和所有控制多边形 图5中,P0至P6为原始3次B 样条曲线控制多边形顶点, P 0至P 12是计算后最终形成 样条曲线控制多边形顶 点。

#include "gl\gl.h" #include "math.h" //* ************* B样条基函数计算部分************** // 确定参数u 所在的节点区间下标 //n=m-p-1 //m 为节点矢量U[] 的最大下标 //p 为B 样条函数次数 int FindSource(int n,int p,float u,float U[]) { int low,high,mid; if(u==U[n+1])// 特殊情况return n; // 进行二分搜索 low=p; high=n+1; mid=(int)(low+high)/2; while(uU[mid]) { if(u=U[mid]&&u=i-k;di--) { if(u>=U[di]&&u

第八章 B样条曲线曲面(Ⅱ)

第八章 B样条曲线曲面 (Ⅱ)

第一节 反算B样条插值曲线 的控制顶点 2

3 问题: 设计一条 设计一条k k 次 次B B 样条曲线,插值给定的数据点, 如何确定 如何确定节点矢量、控制顶点的个数和位置 节点矢量、控制顶点的个数和位置? 解决方案: 一般地,将曲线的首末端点分别与首末数据点对 应起来,为实现这一目的,需要将首末节点都取作 应起来,为实现这一目的,需要将首末节点都取作k + +1 1重。另外,将曲线的分段连接点和内数据点(除 首末数据点以外的数据点依次对应,根据上一章节点 矢量的确定方法,曲线分段连接点和定义域内的内部 节点也一一对应起来,所以: 节点也一一对应起来,所以:

分 分 段 段 连 连接 接 点 定 定 义 义 域 域 内 内 节 节 点 内数据点 建立了这种对应关系后,曲线的 段数以及节点矢量的大小就可以 确定了。 确定了。 n,0,1,, i p i n = r L 设有个待插值的数据点 k1 首节点为 +重,即: 01 k u u u === L p r 它们与第一个待插值点 对应。 4

5 内部数据点与定义域内的节点一一对应,所以: ,0,1, i k i p u i n + = r L 与节点值 一一对应。 [ ] , k n k u u + 这样,插值曲线的定义域就是 [ ] 1 m 1k B , k m u u + 因为,一般情况下,对于 +个控制顶点的 次 样条曲线,它的定义域为: 所以,插值曲线应有n+k个控制顶点,记作: 011 ,, n k d d d +- r r r L

B样条曲线曲面和NURBS曲线曲面C语言算法源程序(优选.)

最新文件---------------- 仅供参考--------------------已改成-----------word 文本 --------------------- 方便更改 学习小结:前面学习了Bezier 曲线,B 样条基函数和B 样条曲线的一些基础知识。掌握关键问题是一条B 样条曲线间的多段曲线的光滑连接。因为现在是用多段Bezier 曲线来描绘一条B 样条曲线,所以问题变为两段Bezier 曲线间光滑连接。两段Bezier 曲线段(3次)B1和B2光滑连接的条件: (1).要求B1和B2有共同的连接点,即G 0 连续。 (2).要求B1和B2在连接点处有成比例的一阶导数,即G 1 连续。由端点处的一阶导数)(3)0(2),(3)1(10123Q Q B P P B -='-=',为实现G 1 连续,则有: )1(1)0(2B B '=' 即:2301P P Q Q -=- 这也表明,1032),(,Q Q P P 三点共线。如下图表示了一条3次B 样条曲线的所有控制多边形: 1) P 2 P 3 P 4 (P 1112) P 5 P 10 0 P 6 P 9 7 P 8 图5.3次B 样条曲线和所有控制多边形 图5中,P0至P6为原始3次B 样条曲线控制多边形顶点,P 0至P 12 是计算后最终形成B 样条曲线控制多边形顶点。

图6.双二次(2x2)B样条曲面 6.B样条曲线曲面和NURBS曲线曲面的C语言实现算法源程序 #ifndef _mynurbs_h #ifndef _MYNURBS_H #include "gl\gl.h" #include "math.h" //*-*-*-*-*-*-*-*-*-*-*-*-*-*-* B样条基函数计算部分 *-*-*-*-*-*-*-*-*-*-*-*-*-* //确定参数u所在的节点区间下标 //n=m-p-1 //m为节点矢量U[]的最大下标

最新B样条曲线与曲面汇总

B样条曲线与曲面

四、B样条曲线与曲面 Bezier曲线具有很多优越性,但有二点不足: 1)特征多边形顶点数决定了它的阶次数,当n较大时,不仅计算量增大,稳定性降低,且控制顶点对曲线的形状控制减弱; 2)不具有局部性,即修改一控制点对曲线产生全局性影响。 1972年Gordon等用B样条基代替Bernstein基函数,从而改进上述缺点。 B样条曲线的数学表达式为: ?Skip Record If...? 在上式中,0 ≤ u ≤ 1; i= 0, 1, 2, …, m所以可以看出:B样条曲线是分段定义的。如果给定 m+n+1 个顶点 Pi ( i=0, 1, 2,…, m+n),则可定义 m+1 段n 次的参数曲线。 在以上表达式中: (u) 为 n 次B样条基函数,也称B样条分段混合函数。其表达式为:N k,n ?Skip Record If...? 式中:0 ≤ u ≤1 k = 0, 1, 2, …, n 1.均匀B样条曲线 1一次均匀B样条曲线的矩阵表示 空间n+1个顶点?Skip Record If...?(i = 0,1,…,n)定义n段一次(k=0,1,n=1)均匀B样条曲线,即每相邻两个点可构造一曲线段P i(u),其定义表达为:?Skip Record If...? =(1-u)P i-1+ u P i = N0,1(u)P i-1+ N1,1(u)P i 第i段曲线端点位置矢量:?Skip Record If...?,且一次均匀B样条曲线就是控制多边形。

2二次均匀B样条曲线的 空间n+1个顶点的位置矢量?Skip Record If...?(i=0,1,…,n)定义n-1段二次(k=0,1,2, n=2)均匀B样条曲线,每相邻三个点可构造一曲线段P i(u) (i=1,…,n-1),其定义表达为: ?Skip Record If...? =?Skip Record If...?(1 - 2 u + u 2)P i-1+?Skip Record If...?(1 + 2 u - 2u2)P i+?Skip Record If...?u 2P i+1 = N0,2(u)P i-1+ N1,2(u)P i+ N2,2(u)P i+1 端点位置矢量:?Skip Record If...?,?Skip Record If...?,即曲线的起点和终点分别位于控制多边形P i-1P i和P i P i+1的中点。若?Skip Record If...?、?Skip Record If...?、?Skip Record If...?三个顶点位于同一条直线上,?Skip Record If...?蜕化成?Skip Record If...??Skip Record If...??Skip Record If...?直线边上的一段直线。 端点一阶导数矢量:?Skip Record If...?,?Skip Record If...?,?Skip Record If...?,?Skip Record If...?,即曲线的起点切矢和终点切矢分别和二边重合,且相邻两曲线段在节点处具有一阶导数连续。 二阶导数矢量:?Skip Record If...?,即曲线段内任何点处二阶导数相等,且相邻两曲线段在节点处二阶导数不连续。

相关主题
文本预览
相关文档 最新文档