第六章 曲线和曲面 ( 二 )
DESCRIPTION
第六章 曲线和曲面 ( 二 ). 主要内容:. 曲线、曲面参数表示的基础知识 常用的参数曲线 常用的参数曲面. 曲线绘制问题. 给定 n+1 个数据点, ,生成一个曲线,使该曲线与这些点所描述的形状相符。 如果要求曲线通过所有的数据点- 》 插值问题 - 》 用于重建数字化表示的曲线; 如果要求曲线逼近这些数据点- 》 逼近问题 - 》 主要用于设计美观的或符合某种美学标准的曲线; 解决上述问题的方法:找到一种用小的部分即 曲线段 来构建曲线的方法,以满足设计标准; 曲线和曲线段可以用 折线 代替,即用非常短的线段绘制; - PowerPoint PPT PresentationTRANSCRIPT
© 2004 Dept. of Computer Science and Engineer 23/4/20
第六章 曲线和曲面 (二 )
© 2004 Dept. of Computer Science and Engineer 23/4/20 2 / 60
主要内容:
曲线、曲面参数表示的基础知识常用的参数曲线常用的参数曲面
© 2004 Dept. of Computer Science and Engineer 23/4/20 3 / 60
曲线绘制问题
给定 n+1个数据点, ,生成一个曲线,使该曲线与这些点所描述的形状相符。
如果要求曲线通过所有的数据点-》插值问题-》用于重建数字化表示的曲线;
如果要求曲线逼近这些数据点-》逼近问题-》主要用于设计美观的或符合某种美学标准的曲线;
解决上述问题的方法:找到一种用小的部分即曲线段来构建曲线的方法,以满足设计标准;- 曲线和曲线段可以用折线代替,即用非常短的线段绘制;
用曲线段拟合曲线 时,把曲线表示为许多小线段 之和,其中 称为基(调和)函数;
),(,),,( 000 nnn yxPyxP
)(xf )(xBi
)(xBi
N
iii xBaxf
0
)()(
© 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
© 2004 Dept. of Computer Science and Engineer 23/4/20 5 / 60
常用的参数曲线
Bezier曲线B样条曲线非均匀有理 B样条( NURBS)曲线常用参数曲线的等价表示
© 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
© 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 和
© 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
© 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调和函数曲线
© 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
© 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曲线的起点、终点与其相应的特征多边形的起点、终点重合;
© 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曲线的起点、终点的切线方向与其相应的特征多边形的第一条边及最后一条边的走向一致;
© 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)个相邻点有关,与更远的点无关;
© 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)()!(
!)(
© 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曲线及其特征多边形在起点处的几何性质与终点处相同;
© 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各点的凸线性组合,并且各点均落在特征多边形的凸包之中;
© 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曲线比特征多边形所在的折线更光顺;
© 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曲线对应一条多边形起点与终点的抛物线;
© 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,
© 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
© 2004 Dept. of Computer Science and Engineer 23/4/20 21 / 60
常用的参数曲线 - Bezier曲线 Bezier曲线的分割递推 Casteljau算法:
- 如何生成 Bezier曲线上的点? 利用三次曲线矩阵公式产生曲线上点的方法:
- 不通用、计算量大 Casteljau算法:原理: 给定参数 , 求 t )(tP
t
P(t)
t
)(tP
© 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
© 2004 Dept. of Computer Science and Engineer 23/4/20 23 / 60
常用的参数曲线 - Bezier曲线算法的几何解释:
© 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
© 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
© 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
=化简:
=项系数,则:比较等式两边
则:上式左边乘以
曲线公式变为:增加控制点后,
+
+
© 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
则:引入权因子
© 2004 Dept. of Computer Science and Engineer 23/4/20 28 / 60
常用的参数曲线
Bezier曲线B样条曲线非均匀有理 B样条( NURBS)曲线常用参数曲线的等价表示
© 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
© 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
其它若
上式等价为:
© 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
© 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
© 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
- 一般化的形式:
© 2004 Dept. of Computer Science and Engineer 23/4/20 34 / 60
常用的参数曲线 - B 样条曲线 曲线的起点和终点值:
)(2
1)(),(
2
1)( 3210 PPendpPPstartp
均匀二次 B样条曲线起点和终点处的导数:
2301 )(,)( PPendpPPstartp
© 2004 Dept. of Computer Science and Engineer 23/4/20 35 / 60
常用的参数曲线 - B 样条曲线
结论:-对于由任意数目的控制点构造的二次周期性 B 样条曲线,曲线的起点位于头两个控制点之间,终点位于最后两个控制点之间;-对于高次多项式,起点和终点是 m-1个控制点的加权平均值点。若某一控制点出现多次,样条曲线会更加接近该点。-由不同节点矢量构成的均匀 B 样条函数所描绘的形状相同,可以看成是一个 B 样条函数的简单平移;-在构造每个线段时,采用均匀 B 样条函数比用非均匀 B 样条函数工作量小,且外形设计的效果差别不大;
© 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);
© 2004 Dept. of Computer Science and Engineer 23/4/20 37 / 60
常用的参数曲线 - B 样条曲线
© 2004 Dept. of Computer Science and Engineer 23/4/20 38 / 60
常用的参数曲线 - B 样条曲线
B 样条曲线的性质- 1 .局部可控性
B 样条的基函数是一个分段函数,其重要特征是在参数变化范围内,每个基函数在 到 的子区间内函数值不为零,在其余区间内均为零,通常也将该特征称为局部支柱性。
因此,每移动一个顶点时,只对其中的一段曲线有影响,并不对整条曲线产生影响。
tk Tk+m
© 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
© 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
© 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 样条曲线可构造直线段、尖点、切线等特殊情况:通过选择控制点的位置和节点的重复数。
© 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
© 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
© 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
© 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 样条曲线可表示为:
© 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
© 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
© 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 样条的顶点重合会产生应用需要的多种曲线。
© 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[
© 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
© 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
© 2004 Dept. of Computer Science and Engineer 23/4/20 52 / 60
常用的参数曲线
Bezier曲线B样条曲线非均匀有理 B样条( NURBS)曲线常用参数曲线的等价表示
© 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
© 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 值得到各种二次曲线:
© 2004 Dept. of Computer Science and Engineer 23/4/20 55 / 60
NURBS优点:- 对标准的解析形式和自由曲线、曲面提供了统一的数学表达,无论始解析形状还是自由格式的形状均有统一的表示参数,便于工程数据库的存取和应用;
- 可通过控制点和权因子来灵活地改变形状;- 对插入节点、修改、分割、集合插值等的处理工具比较有力;- 具有透视投影变换和仿射变换的不变性;- 非有理 B样条、有理及非有理 Bezier曲线、曲面是 NURBS的特例;
NURBS存在问题:- 比一般的曲线、曲面定义方法更费存储空间和处理时间;- 权因子选择不当会造成形状畸变;- 对搭接、重叠形状的处理相当麻烦;- 象点的映射这类算法在 NURBS情况下会变得不稳定;
常用的参数曲线 - 非均匀有理 B 样条( NURBS)曲线
© 2004 Dept. of Computer Science and Engineer 23/4/20 56 / 60
常用的参数曲线
Bezier曲线B样条曲线非均匀有理 B样条( NURBS)曲线常用参数曲线的等价表示
© 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
© 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
,;求,已知:
,;求,已知:
,;求,已知:
© 2004 Dept. of Computer Science and Engineer 23/4/20
谢谢 !