第六章 曲线和曲面 ( 二 )

59
2004 Dept. of Computer Science and Engineer 22/1/15 第第第 第第第第第 ( 第 )

Upload: xaviera-lagunas

Post on 03-Jan-2016

162 views

Category:

Documents


5 download

DESCRIPTION

第六章 曲线和曲面 ( 二 ). 主要内容:. 曲线、曲面参数表示的基础知识 常用的参数曲线 常用的参数曲面. 曲线绘制问题. 给定 n+1 个数据点, ,生成一个曲线,使该曲线与这些点所描述的形状相符。 如果要求曲线通过所有的数据点- 》 插值问题 - 》 用于重建数字化表示的曲线; 如果要求曲线逼近这些数据点- 》 逼近问题 - 》 主要用于设计美观的或符合某种美学标准的曲线; 解决上述问题的方法:找到一种用小的部分即 曲线段 来构建曲线的方法,以满足设计标准; 曲线和曲线段可以用 折线 代替,即用非常短的线段绘制; - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20

第六章 曲线和曲面 (二 )

Page 2: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 2 / 60

主要内容:

曲线、曲面参数表示的基础知识常用的参数曲线常用的参数曲面

Page 3: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 3 / 60

曲线绘制问题

给定 n+1个数据点, ,生成一个曲线,使该曲线与这些点所描述的形状相符。

如果要求曲线通过所有的数据点-》插值问题-》用于重建数字化表示的曲线;

如果要求曲线逼近这些数据点-》逼近问题-》主要用于设计美观的或符合某种美学标准的曲线;

解决上述问题的方法:找到一种用小的部分即曲线段来构建曲线的方法,以满足设计标准;- 曲线和曲线段可以用折线代替,即用非常短的线段绘制;

用曲线段拟合曲线 时,把曲线表示为许多小线段 之和,其中 称为基(调和)函数;

),(,),,( 000 nnn yxPyxP

)(xf )(xBi

)(xBi

N

iii xBaxf

0

)()(

Page 4: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 4 / 60

曲线绘制问题 基函数要用于计算和显示,因此经常选择多项式作为基函数。 次多项式有下列形式,此多项式由它的 n+1个系数决定:

连续分段 n 次多项式 是 k 个多项式 的集合,每个多项式是n 阶,且有 k+1个节点 ,即:

上式要求多项式在节点处连续,即 但多项式在节点处不一定光滑,即在节点处可以有尖角或拐点; 多项式的阶数:

- 高阶多项式有摇摆特性-》曲线绘制时不是很有用;- 最有用的分段多项式为 3 阶多项式:原因:

达到光滑和令人满意的曲线的最小阶数是 3 ; 表示三维曲线所需的最小数字是 3 ;

n

011

1)( axaxaxaxQ nn

nn

)(xQ )(xqi

ktt ,,0

1,,0)()( 1 kiandtxtifxqxQ iii

1,,1),()(1 kitqtq iiii

Page 5: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 5 / 60

常用的参数曲线

Bezier曲线B样条曲线非均匀有理 B样条( NURBS)曲线常用参数曲线的等价表示

Page 6: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 6 / 60

常用的参数曲线 - Bezier曲线

1962年,法国雷诺汽车公司的 PE.Bezier 1972年, UNISURF系统定义:

- 一种以逼近为基础的参数曲线;- 由一组折线集,或 Bezier特征多边形定义;- 曲线的起点、终点与多边形起点、终点重合;- 多边形的第一个边与最后一个边表示了曲线在起点和终点的切矢量方向;

- 形状趋于特征多边形的形状;- 给定空间 n+1个点的位置矢量: Pi,则Bezier

曲线各点坐标的插值公式:10),()(

0 , ttBPtC

n

i nii

Page 7: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 7 / 60

常用的参数曲线 - Bezier曲线Bernstein基函数(曲线上各点位置矢量的调和函数)形式:

nittCttini

ntB inii

n

ini

ni ,,1,011!!

!)(,

Bernstein调和函数的性质:- 1 )正性:

当满足 时:

当满足 时:

1,,2,1)1,0(,0

1,,2,11,0,0)(, nit

nittB ni

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

0)0()1(;1)1()0(

,,0

,,0,,0

ttBtB

BBBB

nnn

nnnnnn

1,,2,1 ni

0 ini 和

Page 8: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 8 / 60

常用的参数曲线 - Bezier曲线 Bernstein调和函数的性质:

- 2 )权性:

- 3 )对称性:

- 4 )递推性:

高次 Bernstein调和函数可由两个低一次 Bernstein调和函数线性组合而成;

n

i

n

i

niini

nni tttttCtB0 0, )1,0(,1])1[()1()(

)()1()1()]1(1[)1(

,

)(

, tBttCCC

ttCtBni

inii

ni

n

in

n

ininnin

nnin

)()()1(

)1()1()1(

)1()()1()(

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

1,11,

1)1()1(1

1

)1(

1

1

11,

1,11,,

ttBtBt

tttCttCt

ttCCttCtB

nittBtBttB

nini

iini

n

inii

n

inii

n

i

n

inii

nni

ninini

Page 9: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 9 / 60

常用的参数曲线 - Bezier曲线 Bernstein调和函数的性质:

- 5 )导函数:

nitBtBn

ttnCttnC

ttini

ntt

ini

n

tinttitini

n

ttini

nttCtB

nini

iini

n

iini

n

iniini

iniini

iniinii

nni

,,1,0)],()([

)1()1(

)1()!1(!

!)1(

)!()!1(

!

])1)(()1([)!(!

!

])1()!(!

![])1([)(

1,1,1

1

1

11

1

11

11

'''

,

三次 Bernstein调和函数曲线

Page 10: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 10 / 60

常用的参数曲线 - Bezier曲线

- 6)降阶公式 :

- 7 )升阶公式 :

- 8)积分 :

- 9)最大值 :在 t=i/n处取得最大值

- 10)线性无关性 是 n 次多项式空间的一组基函数,

)(1

1)(

1)( 1,1,1, tB

n

intB

in

itB ninini

1

1)(

1

0 , n

tB ni

n

ini tB0, )(

)()()1()( 1,11,, ttBtBttB ninini

Page 11: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 11 / 60

常用的参数曲线 - Bezier曲线 Bezier 曲线的性质:

- 1 )端点性质: A)端点位置矢量:

n

i nnii

i

nnnn

n

i nnii

PBPCtif

PC

i

i

BPBPBPBPCtif

0 ,

0

,,110 ,00,

)1()1(,1

)0(

01

000

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

- Bezier曲线的起点、终点与其相应的特征多边形的起点、终点重合;

Page 12: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 12 / 60

常用的参数曲线 - Bezier曲线 Bezier 曲线的性质:

B)切矢量:

)()1(,1

);()0(,0

;)]()([)(

1

'

01

'

1

0 1,1,1

'

nn

n

i ninii

PPnCtif

PPnCtif

tBtBPntC

- Bezier曲线的起点、终点的切线方向与其相应的特征多边形的第一条边及最后一条边的走向一致;

Page 13: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 13 / 60

常用的参数曲线 - Bezier曲线 Bezier 曲线的性质:

C)曲率:

)2)(1()1(,1

);2)(1()0(,0

;)()2()1()(

21''

012''

2

0 2,12''

nnn

n

i niiii

PPPnnCtif

PPPnnCtif

tBPPPnntC

- Bezier曲线在端点处的 r 阶导数,只与( r+1)个相邻点有关,与更远的点无关;

Page 14: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 14 / 60

常用的参数曲线 - Bezier曲线 Bezier 曲线的性质:

D)r阶导函数的差分表示:- N 次 Bezier曲线的 r 阶导函数可用差分公式表示为:

r

k kiki

kri

r

rn

i ir

rnir

r

PCPwhere

tPtBrn

n

dt

tCd

0

0 ,

)1(

10)()!(

!)(

Page 15: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 15 / 60

常用的参数曲线 - Bezier曲线 Bezier 曲线的性质:

- 2 )对称性: 若保持原 Bezier曲线的全部定点位置不变,仅把次序颠倒,形成新的顶点;

则新 Bezier曲线形状不变,只是走向相反;

10,)1(

)1()()(

0 ,

0 0 ,,**

ttBP

tBPtBPtCn

i nii

n

i

n

i nininnii

- Bezier曲线及其特征多边形在起点处的几何性质与终点处相同;

Page 16: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 16 / 60

常用的参数曲线 - Bezier曲线 Bezier 曲线的性质:

- 3 )凸包性:

nit

tB

tB

ni

n

ini ,1,010

1)(0

1)(

,

0,

1 )说明当 t 在 0 与 1 区间变化时,对某个 t 值, C( t )是特征多边形各项点 Pi的加权平均,权因子依次是 Bi,n(t);

2 )在几何图形上, Bezier曲线是 Pi各点的凸线性组合,并且各点均落在特征多边形的凸包之中;

Page 17: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 17 / 60

常用的参数曲线 - Bezier曲线 Bezier 曲线的性质:

- 4 )几何不变性:几何特性不随一定的坐标变换而变化的性质 Bezier曲线的位置与形状仅与特征多边形的定点位置有关,不依赖坐标系的选择;

即:

n

i nii

n

i nii tab

auBPtBP

0 ,0 , 10)()(

- 5 )变差缩减性:如 Bezier曲线的特征多边形是一个平面图形,则直线与曲线的交点个数 ≤ 该直线和特征多边形的交点个数-》变差缩减性; 说明 Bezier曲线比特征多边形的波动小-》 Bezier曲线比特征多边形所在的折线更光顺;

Page 18: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 18 / 60

常用的参数曲线 - Bezier曲线Bezier曲线的矩阵表示:

- 一次 Bezier曲线

- 一次 Bezier曲线是连接起点与终点的直线段;- 二次 Bezier曲线

1001

11]1[)(:

10)1()()(,1

1

0

1

0 101,

tP

PttCismatrixThe

ttPPttBPtCnwheni ii

10

001

022

121

]1[)(:

10)1(2)1()()(,2

2

1

02

2

0 22

102

2,

t

P

P

P

tttCismatrixThe

tPtPttPttBPtCnwheni ii

二次 Bezier曲线对应一条多边形起点与终点的抛物线;

Page 19: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 19 / 60

常用的参数曲线 - Bezier曲线Bezier曲线的矩阵表示:

- 三次 Bezier曲线

PTMPPPPTMtCThen

TMttt

tBtBtBtBB

ttBtttBtttBttBAssume

t

PtPttPttPttBPtCnwhen

zT

z

z

i ii

][)(,

0001

0033

0363

1331

1

)()()()(

)(),1(3)(,)1(3)(,)1()(:

10

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

3210

23

3,33,23,13,0

33,3

23,2

23,1

33,0

3

0 33

22

12

03

3,

Page 20: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 20 / 60

常用的参数曲线 - Bezier曲线Bezier曲线的矩阵表示:

- n 次 Bezier曲线给定空间 n+1个点,则 n 次 Bezier曲线的矢量方程:

工程实践中常用的 Bezier曲线为二、三次。

10)()1(

)1()1()1()(

0 ,0

111

00

tPtBPttC

PtCPttCtPtCPtCtCn

i ini

n

i iiini

n

nnn

niiini

nn

nn

n

Page 21: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 21 / 60

常用的参数曲线 - Bezier曲线 Bezier曲线的分割递推 Casteljau算法:

- 如何生成 Bezier曲线上的点? 利用三次曲线矩阵公式产生曲线上点的方法:

- 不通用、计算量大 Casteljau算法:原理: 给定参数 , 求 t )(tP

t

P(t)

t

)(tP

Page 22: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 22 / 60

常用的参数曲线 - Bezier曲线 Bezier曲线的分割递推 Casteljau算法:

- 算法

- 计算过程

tt

rninrPtPt

rPP r

ir

i

iri ,,1,0,,,2,1)1(

0,1

11

Page 23: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 23 / 60

常用的参数曲线 - Bezier曲线算法的几何解释:

Page 24: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 24 / 60

常用的参数曲线 - Bezier曲线Bezier曲线的拼接及其连续性:

- 目的:将两条 Bezier曲线按照一定的连续条件连接起来,如图所示, 要求前条曲线的终点与后条曲线的起点重合,即满足 连续;0C

- 满足 连续的充要条件:

- 满足 连续的充要条件:在 连续的前提下满足两个条件:

- 1 )密切平面重合,副法线矢量同向;- 2 )曲率相等;

1G

连续

三点共线;即1

1101

,,1

).0(,,

Cthenif

abQQPP nnn

2C 1C

Page 25: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 25 / 60

常用的参数曲线 - Bezier曲线反算 Bezier曲线控制点:

- 目的:根据给定的曲线型值点 求 Bezier曲线的控制点 - 方法:

取参数 t=i/n与点 对应,反算 ; 设 在曲线 上,且有:

则可得下列 n+1个方程组成的线性方程组:

求解方程,可得 ,即为过 的 Bezier多边形的顶点

iQ iP

iQiP

)(tCiQnn

nn

n

n

n

n tCPttCPtCPtC )1()1()( 1

1

0

0

nn

nn

nn

n

n

n

ni

PQ

niniCPniniCPniCPQ

PQ

;1,,2,1,)/()/()/1()/1( 11

1

0

0

00

),,1,0( niPi iQ

Page 26: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 26 / 60

常用的参数曲线 - Bezier曲线Bezier曲线的升阶:

- 目的:对曲线做修改时,可以通过增加控制点以实现对曲线的灵活控制,而不改变原有曲线的形状;

- 方法:对原有曲线进行升阶,如图,将原有 4 个控制点变为 5 个点;

1,,1,0,)1

1(1

)1(

)1())1()1((

)),1((

)1()1(

1

)1(

1

11

)1(

1

1

0

1)1(

10

11

1

0

1)1(

10

njPn

jP

n

jP

CPCPCP

tt

ttPCttttPC

tt

ttPCttPC

Bezier

jjj

j

nj

j

nj

j

nj

jnj

n

j

jnj

j

j

n

n

j

jnjjnj

j

j

n

n

j

jnj

j

j

n

n

j

jnj

j

j

n

=化简:

=项系数,则:比较等式两边

则:上式左边乘以

曲线公式变为:增加控制点后,

Page 27: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 27 / 60

常用的参数曲线 - Bezier曲线- 上式说明:

1 )新的控制点 P 是对老的特征多边形在参数 i/(n+1)处进行线性插值的结果;

2 )升阶后的新的特征多边形在老的特征多边形的凸包内; 3 )升阶后的特征多边形更靠近 Bezier曲线;

Bezier曲线的降阶:- 同理可以推导出曲线的降阶公式;

有理 Bezier曲线: 目的 : 更好的控制曲线的形状;

10)()()(

)()()(

)(

))(()(

,

,,11,00

,,111,000

0 ,

0 ,

ttBhtBhtBh

tBPhtBPhtBPh

tBh

tBhPtC

h

nnnnn

nnnnnn

n

i nii

n

i niiirz

i

则:引入权因子

Page 28: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 28 / 60

常用的参数曲线

Bezier曲线B样条曲线非均匀有理 B样条( NURBS)曲线常用参数曲线的等价表示

Page 29: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 29 / 60

常用的参数曲线 - B 样条曲线目的:解决 Bezier曲线的不足( 1972年, Gordon,Riesenfeld扩展 Bezier曲线);

1) 控制多边形的顶点个数决定了 Bezier曲线的阶次 ,n较大时特征多边形对曲线的控制减弱 ;

2)调和函数在整个区间内均不为零-》不能作局部修改; 方法:用 B 样条函数代替 Bernstein函数,从而:

- 1 )改进了 Bezier特征多边形与 Bernstein多项式次数相关的问题;- 2 )克服了 Bezier曲线整体逼近的缺点;

均匀 B 样条函数的定义:- 已知有 n+1个控制点的特征多边形,其顶点为:- 则可以定义 L + 1 段 k-1次的参数曲线。

其中: L = n-( k - 1 )

),,1,0( niPi

n

ii,ki (u)NPC(u)

0

Page 30: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 30 / 60

常用的参数曲线 - B 样条曲线 其中 为基函数,可以定义如下递归函数:)(, uN ki

1,,1,010

)1()1()!1(

1)(

1

0

11,

kiuwhere

jikuCk

uNik

j

kjk

jki

1k1,11

1,1

,

1i1,

t)(

)(

0

t 1)(

nkiiki

kiki

iki

iki

ii

tuuNtt

utuN

tt

tuuN

tuuN

其它若

上式等价为:

Page 31: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 31 / 60

常用的参数曲线 - B 样条曲线 参数说明: k 是曲线的阶数, k - 1 为 B 样条曲线的次数,曲线在连接点处具有 (k-2)阶连续; 是节点值, 构成了 k 次 B 样条曲线的节点矢量,节点是非减序列;且:

节点矢量:分为三种类型:均匀的,均匀非周期的和非均匀的;- 节点沿参数轴均匀等距分布,即 = 常数时,=》均匀 B 样条函数;- 节点沿参数轴分布不等距,即 ≠常数时,=》非均匀 B 样条函数。

1 .均匀周期性 B 样条曲线- T=(-2,-1.5,-1,-0.5,0,0.5,1,1.5,2)- T=(0,1,2,3,4,5,6,7)- 均匀 B 样条的基函数呈周期性:

it ],,,[ 1210 kLtttT 1 knL

ii tt 1

ii tt 1

],[

)1()1()(

1

,1,1,

ikik

kikiki

ttu

uNuNuN

Page 32: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 32 / 60

常用的参数曲线 - B 样条曲线- 均匀周期性二 次(三阶) B 样条曲线

取 k - 1=2, n=3

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()!13(

1

uuN

uuuN

uuuu

juCuNj

jj

1,,1,010

)1()1()!1(

1)(

1

0

11,

kiuwhere

jikuCk

uNik

j

kjk

jki

- k - 1=2,n=3-》 i=0,1,2

Page 33: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 33 / 60

常用的参数曲线 - B 样条曲线- 二次 B 样条曲线表达式可以表示如下:

2

1

02

2

02

011

022

121

2

1]1[

P

P

P

tt(u)NPC(u)i

i,i

Li

(u)PN(u)PN(u)PN(u)C i,i,i,i

,2,1,022212120

- 一般化的形式:

Page 34: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 34 / 60

常用的参数曲线 - B 样条曲线 曲线的起点和终点值:

)(2

1)(),(

2

1)( 3210 PPendpPPstartp

均匀二次 B样条曲线起点和终点处的导数:

2301 )(,)( PPendpPPstartp

Page 35: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 35 / 60

常用的参数曲线 - B 样条曲线

结论:-对于由任意数目的控制点构造的二次周期性 B 样条曲线,曲线的起点位于头两个控制点之间,终点位于最后两个控制点之间;-对于高次多项式,起点和终点是 m-1个控制点的加权平均值点。若某一控制点出现多次,样条曲线会更加接近该点。-由不同节点矢量构成的均匀 B 样条函数所描绘的形状相同,可以看成是一个 B 样条函数的简单平移;-在构造每个线段时,采用均匀 B 样条函数比用非均匀 B 样条函数工作量小,且外形设计的效果差别不大;

Page 36: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 36 / 60

常用的参数曲线 - B 样条曲线 2 .均匀非周期 B 样条曲线

- 节点矢量定义为:令 L = n – k (n为控制点数目 ) ,从 0 开始,按 ti≤ti+1排列。

kLi

kLik

ki

L

kit

),...,LL,...,L,,,,...,(T

i

kk

1

0

11210011

- 均匀非周期二次(三阶) B 样条曲线设 k=2, n=6,节点矢量为: T=(t0 ,t1,…,tL+2k+1) =(t0 ,t1, t2, t3, t4, t5, t6, t7,t8,t9) =(0,0,0,1,2,3,4,5,5,5);

Page 37: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 37 / 60

常用的参数曲线 - B 样条曲线

Page 38: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 38 / 60

常用的参数曲线 - B 样条曲线

B 样条曲线的性质- 1 .局部可控性

B 样条的基函数是一个分段函数,其重要特征是在参数变化范围内,每个基函数在 到 的子区间内函数值不为零,在其余区间内均为零,通常也将该特征称为局部支柱性。

因此,每移动一个顶点时,只对其中的一段曲线有影响,并不对整条曲线产生影响。

tk Tk+m

Page 39: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 39 / 60

常用的参数曲线 - B 样条曲线- 2.B样条的凸组合性质

B 样条的凸组合性和 B 样条基函数的数值均大于或等于 0 保证了 B 样条曲线的凸包性,即 B 样条曲线必处在控制多边形所形成的凸包之内。

]t,[t t

1)(

1n1-m

0,

n

kmk tB

Page 40: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 40 / 60

常用的参数曲线 - B 样条曲线 B 样条曲线的性质

- 3.连续性 B 样条曲线在 处有 L 重节点的连续性不低于( k - L )次,整条曲线的连续性不低于( k - Lmax)次,其中 Lmax是区间 内的最大重节点数;

B样条曲线基函数的次数与控制顶点个数无关。 

)1( nikti ),( 11 nk tt

Page 41: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 41 / 60

常用的参数曲线 - B 样条曲线 B 样条曲线的性质

- 4.导数 ; B 样条曲线的导数可用其低阶的 B 样条基函数和定点矢量的差商序列的线性组合表示。

可以证明, k 次 B 样条曲线段之间达到 k-1次的连续性;

- 5.几何不变性:形状和位置与坐标系的选择无关;

- 6.变差缩减性:平面内任一直线与曲线的交点个数不多于该直线与特征多边形的交点个数;

- 7.造型的灵活性; 用 B 样条曲线可构造直线段、尖点、切线等特殊情况:通过选择控制点的位置和节点的重复数。

Page 42: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 42 / 60

常用的参数曲线 - B 样条曲线 B 样条曲线的矩阵表示

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

- 设空间 n+1个定点的位置矢量,每两个相邻点可以构造出一段一次 B 样条曲线, B 样条基函数是 ,则每两段相关的一次 B 样条曲线可以表示为:

1001

11]1[

)!12(

1])()([)( 2,22,12,

uuuNuNuN i

)(),( 2,22,1 uNuN

10;1,,1,001

111)(

)()()(;)()()(

12,

12,22,12,12,212,12,

uniP

PuuC

PuNPuNuCPuNPuNuC

i

ii

iiiiii

Page 43: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 43 / 60

常用的参数曲线 - B 样条曲线

二次 B 样条曲线的矩阵表示- 二次 B 样条基函数的矩阵式可以表示为:

;10

011

022

121

]1[)!13(

1

)]()()([

2

3,33,23,13,

uuu

uNuNuNN i

- 设空间有 个顶点: ,则相邻的每三个顶点可构造一段二次 B 样条曲线,其中第 i 段可以表示成 ( 如图 ) :

1n ),,1,0( niPi

;1,,2,1;10

011

022

121

]1[2/1)(

1

12

3,

niu

P

P

P

uuuC

i

i

i

i

Page 44: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 44 / 60

常用的参数曲线 - B 样条曲线- 其中:

1 )端点位置矢量: );(5.0)1(),(5.0)0( 13,13, iiiiii PPCPPC

,1'

3,,1'

3, )1()0( iiiiii PPCPPC

)0()1( '3,1

'3, ii CC

113,'' 2)( iiii PPPuC

2 )端点一阶导数矢量: 且:

说明曲线段在起、终点的一阶导数矢量分别和两条边矢量重合,且在节点处的一阶导数矢量连续。

3 )端点二阶导数矢量: 即曲线段的二阶导数矢量等于该曲线的两条边矢量

和 所成的对角线矢量。

ii PP 1

ii PP 1

4 )若 三个顶点位于同一条直线上, 蜕化为 直线边上的一段直线,并使 曲线段切于 处,若要使二次 B 样条线段过端点,或得到一个尖点,还需要有二重控制点。

11 ,, iii PPP )(3, uCi 11 iii PPP

)(3,1 uCi )1(3,iC

Page 45: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 45 / 60

常用的参数曲线 - B 样条曲线 三次 B 样条曲线的矩阵表示:

- 若从空间 n+1个顶点 中每次取相邻的四个顶点,可构造 出一段三次 B 样条曲线,其相应的基函数是:

),,1,0( niPi

]1,0[);)(6/1()(),1333)(6/1()(

),463)(6/1()(),133)(6/1()(

)](),(),(),([)(

34,4

234,3

234,2

234,1

4,44,34,24,14,

uuuNuuuuN

uuuNuuuuN

uNuNuNuNuNi

34,424,314,24,14,1

24,414,34,214,14,

)()()()()(

)()()()()(

iiiii

iiiii

PuNPuNPuNPuNuC

PuNPuNPuNPuNuC

- 三次 B 样条基函数的矩阵表示为:

0141

0303

0363

1331

]1)[6/1()( 234, uuuNi

- 相邻两段三次 B 样条曲线可表示为:

Page 46: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 46 / 60

常用的参数曲线 - B 样条曲线- 因此,第 i 段三次 B 样条曲线可写成:

4

124,4, )()(

jjiji PuNuC

- 对应的矩阵式是:(如图)

;2,2,1

],1,0[,

0141

0303

0363

1331

]1)[6/1()(

2

1

1

234,

ni

u

P

P

P

P

uuuuC

i

i

i

i

i

Page 47: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 47 / 60

常用的参数曲线 - B 样条曲线 其中:

- 1 )端点位置矢量:

曲线起点位于 中线 的 1/3处,终点位于 中线 的 1/3处。

6/6/46/)1(,6/6/46/)0( 214,14, iiiiiiii PPPCPPPC

2/)()1(,2/)()0( 24,'

114,'

iiiiii PPCPPC

11 iii PPP MPi 21 iii PPP '1MPi

- 2 )端点切矢量:曲线在始点处的切矢量平行于 的边,其模长为该边长的 1/2,终点处的切矢量平行于 的边,其模长为该边长的 1/2。由于前一段曲线的终点是下一段曲线的起点,而且具有相同的三角形,因此,几何上可见两段曲线在节点处具有相同的一阶导数矢量。

11 iii PPP

21 iii PPP

- 3 )端点的二阶导数矢量:曲线段在端点处的二阶导数矢量等于相邻两直线边所形成平行四边形的对角线。由于终点处的平行四边形和下一段曲线在始点处的平行四边形相同,因此,三次B 样条曲线在节点处有二阶导数连续。

214,''

114,'' 2)1(,2)0( iiiiiiii PPPCPPPC

Page 48: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 48 / 60

常用的参数曲线 - B 样条曲线

11 ,, iii PPP

iP211 ,,, iiii PPPP )(3, uCi

11 ,, iii PPP )(3, uCi

- 4 )若 三点共线,三次 B 样条曲线将产生拐点,若 四点共线,则 变成一条直线段;若 三点重合,则 通过 点。

因此,利用三次 B 样条的顶点重合会产生应用需要的多种曲线。

Page 49: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 49 / 60

常用的参数曲线 - B 样条曲线 B 样条曲线的分割和节点插入算法

- 1 ) deBoor分割算法 K 次 B 样条基函数可由两个相邻的 k-1次 B 样条基函数线性组合而成,利用 k次 B 样条函数的性质,可用 deBoor算法计算曲线段 C(t)的值,若

则其递归公式为:

也可表示成:

)()(;],,[ 1 uPucnjkttu kjjj

)()()()( ][

11,

]1[, uPuNPuNPuC k

j

j

kjikii

j

kjikii

jrkjikr

Ct

utuC

tt

tujkjirP

uC ri

rki

rkiri

irki

i

iri

,,,,,2,1

)(

,,1,0,)( ]1[

11

1]1[

Page 50: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 50 / 60

常用的参数曲线 - B 样条曲线

- 求曲线上一点坐标的递推过程可以表示成一个三角形,其几何意义如图:

- deBoor分割算法的实质是用 构成的边切 角。

- 从多边形 开始经过 k 层的切角,最后得到曲线 C(u)上的点 P ;

程序见: pp315

ri

ri PP 1

jkjkj PPP 1

1riP

Page 51: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 51 / 60

常用的参数曲线 - B 样条曲线 反求 B 样条曲线的控制点及其端点性质

- 定义:已知一组空间型值点 Q ,找一条 k 次 B 样条曲线,经过这些型值点,即找到与型值点 Q 相应的 B 样条特征多项式顶点 P 。对于型值点与控制点的位置矢量之间有关系:

通过上次,可以求出控制点,但上次有 n 个方程,有 n+2个未知数,因此需要补充两个边界条件,即起点和终点;

分为以下情况确定起点和终点边界条件:1 )首末两点过 Q1和 Qn的非周期三次 B 样条曲线;2 )封闭周期的三次 B 样条曲线;3 )端点有二重控制点的三次 B 样条曲线;4 )给定始、终点的切矢量 ;

5 )给定始、终点的二阶导数矢量 R1和 Rn;

),1,,3,2,1,6/)4()0( 11 nnjQPPPP jjjj

Page 52: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 52 / 60

常用的参数曲线

Bezier曲线B样条曲线非均匀有理 B样条( NURBS)曲线常用参数曲线的等价表示

Page 53: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 53 / 60

常用的参数曲线 - 非均匀有理 B 样条( NURBS)曲线

NURBS方法 : 非均匀有理 B 样条( Nonuniform Rational B-Spline)方法- 定义:由分段有理B样条多项式基函数定义:

;)()(/)()(0

,0

,0

,

n

ikii

n

ikii

n

ikiii uRPuNWuNPWuC

- 例: 假定用定义在三个控制顶点和开放均匀的节点矢量上的二次(三阶) B样条函数来拟合,于是, T=(0,0,0,1,1,1),取权函数为:

1r0 1

1

1

20

r

rw

ww

Page 54: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 54 / 60

常用的参数曲线 - 非均匀有理 B 样条( NURBS)曲线

- 有理 B 样条的表达式为:

)(3,2)(3,1)(3,0

)(3,22)(3,11)(3,00

1

1)(

ttt

ttt

NNr

rN

NPNPr

rNP

tC

- 取不同的 r 值得到各种二次曲线:

Page 55: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 55 / 60

NURBS优点:- 对标准的解析形式和自由曲线、曲面提供了统一的数学表达,无论始解析形状还是自由格式的形状均有统一的表示参数,便于工程数据库的存取和应用;

- 可通过控制点和权因子来灵活地改变形状;- 对插入节点、修改、分割、集合插值等的处理工具比较有力;- 具有透视投影变换和仿射变换的不变性;- 非有理 B样条、有理及非有理 Bezier曲线、曲面是 NURBS的特例;

NURBS存在问题:- 比一般的曲线、曲面定义方法更费存储空间和处理时间;- 权因子选择不当会造成形状畸变;- 对搭接、重叠形状的处理相当麻烦;- 象点的映射这类算法在 NURBS情况下会变得不稳定;

常用的参数曲线 - 非均匀有理 B 样条( NURBS)曲线

Page 56: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 56 / 60

常用的参数曲线

Bezier曲线B样条曲线非均匀有理 B样条( NURBS)曲线常用参数曲线的等价表示

Page 57: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 57 / 60

常用参数曲线的等价表示 Hermite, Bezier, B 样条三种非有理参数表示式的相互转换

- 对于同一条曲线,已知三种表示的一种形式,推导其它两种形式。- 设已知三种曲线的表示形式都是几何形式:- 则三次 Hermite曲线为:

- 三次 Bezier曲线为:

],1[,)( 23 ttTTMBtP

TiiiiZZZZZ PPPPBMBTMtP ][,

0001

0033

0363

1331

,)( 321

T

HHHHH PPPPBMBTMtP ][,

0001

0100

1233

1122

,)( '1

'010

Page 58: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20 58 / 60

常用参数曲线的等价表示- 三次 B 样条曲线为:

ZBBBBB BBMBTMtP

,

0141

0303

0363

1331

,)(

;,

)3

;,

)2

;,

)1

11

11

11

BBZZBBHHZZHHBB

ZHBB

ZZBBZZHHBBHHZZ

BHZZ

HHBBHHZZBBZZHH

BZHH

BMMBBMMBBMBMBM

BBBM

BMMBBMMBBMBMBM

BBBM

BMMBBMMBBMBMBM

BBBM

,;求,已知:

,;求,已知:

,;求,已知:

Page 59: 第六章    曲线和曲面 ( 二 )

© 2004 Dept. of Computer Science and Engineer 23/4/20

谢谢 !