第四章 自由曲线与曲面
(二)
哈尔滨工业大学计算机学院
苏小红
2
Bezier曲线
1962年,法国雷诺汽车公司
P.E.Bezier工程师
以“逼近”为基础
UNISURF系统
1972年雷诺汽车公司正式使用
3
Bezier曲线( 1/19)
Bezier基函数 --Bernstein多项式 的定义
]1,0[,)1()(,??? ? tttCtB E Z iniinni
)!(!
!
ini
nC i
n ??
0.4 0.6 0.8 1
0.2
0.4
0.6
0.8
1
BEZ (u)
0.80.2 0.60.4 1
BEZ (u) BEZ (u)
u u
1
0.8
0.6
0.4
0.2
BEZ (u)
0.8
0.2
0.4
0.40.2 0.6
0.6
0.8
1
1
u
0.2
0.4
0.2 0.4 0.6 0.8
1
0.8
0.6
u
1
0.2
三次 Bézier曲线的四个混合函数
4
Bezier曲线( 2/19)
Bernstein基函数的性质
? 正性
? 权性
? 对称性
? 降阶公式
? 升阶公式
)1()(,,tB EZtB EZ ninni ?? ?
]1,0[,0)(,?? ttB EZ ni
]1,0[,1)(
0
,???
?
ttB E Zn
i
ni
)()()1()( 1,11,,tt B EZtB EZttB EZ ninini ??? ???
)(11)(1)( 1,1,1,tB E Zn intB E ZinitB E Z ninini ??? ? ??????
5
Bezier曲线( 3/19)
? 导数
? 积分
? 最大值
在 t = i/n处取得最大值
? 线性无关性
是 n次多项式空间的一组基
1
1)(1
0,??? ntB E Z ni
? ?nini tBEZ 0,)( ?
))()(()( 1,1,1,tt B EZtB EZntB EZ ninini ??? ??
6
Bezier曲线( 4/19)
Bezier曲线的定义
? n次多项式曲线 P(t)称为 n次 Bezier曲线
? 控制顶点
? 控制多边形
]1,0[)()(
0
,??? ?
?
ttB E ZPtP
n
i
nii
P0
P1 P2
P3
7
Bezier曲线( 5/19)
Bezier曲线的性质
? 端点位置
00|)( PtP t ??
nt PtP ??1|)(
P0
P1 P2
P3
8
Bezier曲线( 6/19)
? 端点切矢量
导数曲线
010|)( PPtP t ??? ?
11|)( ?? ??? nnt PPtP
]1,0[)()()(
1
0
1,1 ????? ?
?
?
?? ttB E ZPPntP
n
i
niii
P0
P1 P2
P3
9
Bezier曲线( 7/19)
? 对称性
不是形状对称
保持贝塞尔曲线全部控制点 Pi的坐标位置不变,只
是将控制点 Pi的排序颠倒,曲线形状保持不变
10
Bezier曲线( 8/19)
? 凸包性
点集的凸包
? 包含这些点的最小凸集
Bezier曲线位于其控制顶点的凸包之内
2p
3p
0p
1p
11
Bezier曲线( 9/19)
? 多值性
P4P
1 P4
P2
P0=P5
P3
12
Bezier曲线( 10/19)
? 几何不变性
? 平面曲线的变差缩减性
13
Bezier曲线( 11/19)
二次 Bezier曲线
? n=2
? 抛物线
P0 P2
P1
M
P(0.5)
P(1)P(0)
14
Bezier曲线( 12/19)
三次 Bezier曲线
? n=3
P0
P1
P2
P3
P(0) P(1)
15
Bezier曲线( 13/19)
三次 Bezier曲线的矩阵表示
TMG
t
t
t
G
tC
ttC
ttC
tC
G
tB E Z
tB E Z
tB E Z
tB E Z
PPPPtB E ZPtP
BEZBEZ
BEZBEZ
i
ii
???
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
?
?
?
?
?
?
?
?
?
?
?
?
??? ?
?
3
2
33
3
22
3
21
3
30
3
3,3
3,2
3,1
3,0
3210
3
0
3,
1
1000
3300
3630
1331
)1(
)1(
)1(
)(
)(
)(
)(
],,,[)()(
16
Bezier曲线( 14/19)
? 递推公式 --De Casteljau算法
?
?
?
???????
??
?
?
? rninrPtPt
rPP
r
i
r
i
ir
i,,1,0,,,2,1)1(
0,
1
1
1 ??
计算过程 几何解释
17
Bezier曲线( 15/19)
曲线的拼接
?
?
?? m
i
mii tB E ZPtP
0
,)()( ?
?
?? n
j
nij sB EZQsQ
0
,)()(
18
Bezier曲线( 16/19)
? 零阶几何连续条件
? 一阶几何连续条件
? 二阶几何连续条件?
0)1( QP m ?
0)1( QP m ?
)(0)2( 011 QQPP mm ????? ? ??
三点共线,且 Q1,Pm-1在连接点的异侧
自学
19
反求控制顶点
? 给定 n+1个型值点,要求构造一条 Bezier曲线通过这些点
Bezier曲线( 17/19)
?
?
?
?
??
?
?
?
?
??????
?
?
nn
nn
nn
n
n
n
ni
PQ
niCPniniCPniCPQ
PQ
.,,
)/(.,,)/()/1()/1(
.,,
11
1
0
0
00
20
优点:
? 形状控制直观
? 设计灵活
Bezier曲线( 18/19)
21
缺点:
? 所生成的曲线与特征多边形的外形相距较远
? 局部控制能力弱,因为曲线上任意一点都是所有给定
顶点值的加权平均
? 控制顶点数增多时,生成曲线的阶数也增高
? 控制顶点数较多时,多边形对曲线的控制能力减弱
? 曲线拼接需要附加条件,不太灵活
Bezier曲线( 19/19)
22
B样条曲线( 1/17)
产生:
? 1946年,Schoenberg发表关于 B样条函数的第 1篇论文
? 1973年前后,Gordon,Riesenfield,Forrest等人受到 Bezier方法的
启发,将 B样条函数拓广成参数形式的 B样条曲线
优于 Bezier曲线之处:
? 与控制多边形的外形更接近
? 局部修改能力
? 任意形状,包括尖点、直线的曲线
? 易于拼接
? 阶次低,与型值点数目无关,计算简便
23
B样条曲线( 2/17)
定义:
? 给定 m+n+1个空间向量, (k=0,1,…,m+n),称
n次参数曲线
为 n次 B样条曲线的第 i段曲线( i=0,1,…,m )
? 它的全体称为 n次 B样条曲线,它具有 Cn-1连续性
kB?
?
?
? ???
n
l
nllini ttFBtP
0
,,10)()(
??
24
B样条曲线( 3/17)
为简化记号,取 i=0来代表样条中的任意一段
基函数为 B样条函数
??
?
? ???????
ln
j
nj
n
j
nl tjlntCntF
0
1,10)()1(!
1)(
?
?
? ???
n
l
nllini ttFBtP
0
,,10)()(
??
25
B样条曲线( 4/17)
二次 B样条
? n=2
? 抛物线
B0
B2
B1
M
P(0.5)
P(1)P(0)
26
B样条曲线( 5/17)
三次 B样条
? n=3,
.
P (
0 )
P (
1 )
,
,P(1)P 1
P 0
P 2
P 3
P(0)
P( μ )
.
.
.
.
.
.
P m
P n
P(t)
B0
B1
B2
B3
2/)()1(
2/)()0(
6/)4()1(
6/)4()0(
13
02
321
210
BBP
BBP
BBBP
BBBP
???
???
???
???
27
B样条曲线( 6/17)
三次 B样条的 C2连续性
? 如果增加一个控制顶点
P4,则前一段曲线是否
会受影响?
.,
P (
0 )
P ( 1
)
,
,P(1)P 1
P 0
P 2
P 3
P(0)
P( μ )
..
.
.
.
.
P m
P n
P(t)
P4
28
B样条曲线( 7/17)
特殊外形设计
? 三顶点共线
? 位于控制多边形边上的一个点
P0 P2
P1
M
P(0) P’(0)
P0 P2M P1P(0)
29
B样条曲线( 8/17)
特殊外形设计
? 四顶点共线
? 含有直线段的曲线
P0 P3P1 P2
P(0)
M1
P(1)
M2
30
B样条曲线( 9/17)
特殊外形设计
? 两顶点重合
P0 P2
P1
M
P’(0)
P0 P2M P1
P(0)
P(0)
31
B样条曲线( 10/17)
特殊外形设计
? 两顶点重合
? 相切于控制多边形边的曲线
P2
P5
P1
P0
P4
P3
32
B样条曲线( 11/17)
特殊外形设计
? 三顶点重合
? 含有尖点的曲线 P2
P6
P1
P0
P4P3
P5
33
B样条曲线( 12/17)
特殊外形设计
? 如何构造通过控制多边形某一顶点的 B样条曲线?
提示:
? 将控制多边形的首尾两条边各延长 1/6,将新的顶点置为
二重顶点
? 将控制多边形的首尾两条边各延长 1/2,利用三点共线
34
B样条曲线( 13/17)
在数据拟合中的应用
? 给定一组离散的型值点列,如何构造一条通过该组型值
点的 B样条曲线?
原问题:
? 给定控制顶点,计算曲线上的点kP?
?? ? ??? nl nllini ttBPtP 0,,10)()( ??
)(,tPni?
35
B样条曲线( 14/17)
目标:构造三次 B样条曲线通过型值点 Pi,i=1,2,…,n -
1
12
102
2
2
?? ???
???
nnn PBB
PBB
根据三次 B样条曲线端点性质
iiii PBBB 64 11 ??? ??
补充两个边界条件
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
1
1
2
1
1
1
2
1
0
2
6
...
6
6
2
...
101
141
......
141
141
101
n
n
n
n
P
P
P
P
P
B
B
B
B
B
追赶法
求解
36
B样条曲线( 15/17)
几种常见的边界条件:
? 首末两端加上导数条件
? 在控制多边形首末两条边的延长线上分别外延一点
? 设 B1=B0,Bn=Bn-1,重顶点
方法 1存在的问题:
? 首末端导数难以给出方法 2存在的问题:
? 三点共线导致端点曲率为 0方法 3存在的问题:
? 是方法 2中外延距离为 0的特例
37
B样条曲线( 16/17)
基于曲率参数的边界条件构造法
解决零曲率问题
SuXiaohong,LiDong,ZhangTianwen,A
new method to build boundary conditions
for nonuniform B-splines interpolation,
Journal of Harbin Institute of Technology
( In English), 2000,7(4):59-62
38
B样条曲线( 17/17)
优点:
? 与控制多边形的外形更接近
? 局部修改能力
? 任意形状,包括尖点、直线的曲线
? 易于拼接
? 阶次低,与型值点数目无关,计算简便
缺点:
? 不能精确表示圆
(二)
哈尔滨工业大学计算机学院
苏小红
2
Bezier曲线
1962年,法国雷诺汽车公司
P.E.Bezier工程师
以“逼近”为基础
UNISURF系统
1972年雷诺汽车公司正式使用
3
Bezier曲线( 1/19)
Bezier基函数 --Bernstein多项式 的定义
]1,0[,)1()(,??? ? tttCtB E Z iniinni
)!(!
!
ini
nC i
n ??
0.4 0.6 0.8 1
0.2
0.4
0.6
0.8
1
BEZ (u)
0.80.2 0.60.4 1
BEZ (u) BEZ (u)
u u
1
0.8
0.6
0.4
0.2
BEZ (u)
0.8
0.2
0.4
0.40.2 0.6
0.6
0.8
1
1
u
0.2
0.4
0.2 0.4 0.6 0.8
1
0.8
0.6
u
1
0.2
三次 Bézier曲线的四个混合函数
4
Bezier曲线( 2/19)
Bernstein基函数的性质
? 正性
? 权性
? 对称性
? 降阶公式
? 升阶公式
)1()(,,tB EZtB EZ ninni ?? ?
]1,0[,0)(,?? ttB EZ ni
]1,0[,1)(
0
,???
?
ttB E Zn
i
ni
)()()1()( 1,11,,tt B EZtB EZttB EZ ninini ??? ???
)(11)(1)( 1,1,1,tB E Zn intB E ZinitB E Z ninini ??? ? ??????
5
Bezier曲线( 3/19)
? 导数
? 积分
? 最大值
在 t = i/n处取得最大值
? 线性无关性
是 n次多项式空间的一组基
1
1)(1
0,??? ntB E Z ni
? ?nini tBEZ 0,)( ?
))()(()( 1,1,1,tt B EZtB EZntB EZ ninini ??? ??
6
Bezier曲线( 4/19)
Bezier曲线的定义
? n次多项式曲线 P(t)称为 n次 Bezier曲线
? 控制顶点
? 控制多边形
]1,0[)()(
0
,??? ?
?
ttB E ZPtP
n
i
nii
P0
P1 P2
P3
7
Bezier曲线( 5/19)
Bezier曲线的性质
? 端点位置
00|)( PtP t ??
nt PtP ??1|)(
P0
P1 P2
P3
8
Bezier曲线( 6/19)
? 端点切矢量
导数曲线
010|)( PPtP t ??? ?
11|)( ?? ??? nnt PPtP
]1,0[)()()(
1
0
1,1 ????? ?
?
?
?? ttB E ZPPntP
n
i
niii
P0
P1 P2
P3
9
Bezier曲线( 7/19)
? 对称性
不是形状对称
保持贝塞尔曲线全部控制点 Pi的坐标位置不变,只
是将控制点 Pi的排序颠倒,曲线形状保持不变
10
Bezier曲线( 8/19)
? 凸包性
点集的凸包
? 包含这些点的最小凸集
Bezier曲线位于其控制顶点的凸包之内
2p
3p
0p
1p
11
Bezier曲线( 9/19)
? 多值性
P4P
1 P4
P2
P0=P5
P3
12
Bezier曲线( 10/19)
? 几何不变性
? 平面曲线的变差缩减性
13
Bezier曲线( 11/19)
二次 Bezier曲线
? n=2
? 抛物线
P0 P2
P1
M
P(0.5)
P(1)P(0)
14
Bezier曲线( 12/19)
三次 Bezier曲线
? n=3
P0
P1
P2
P3
P(0) P(1)
15
Bezier曲线( 13/19)
三次 Bezier曲线的矩阵表示
TMG
t
t
t
G
tC
ttC
ttC
tC
G
tB E Z
tB E Z
tB E Z
tB E Z
PPPPtB E ZPtP
BEZBEZ
BEZBEZ
i
ii
???
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
?
?
?
?
?
?
?
?
?
?
?
?
??? ?
?
3
2
33
3
22
3
21
3
30
3
3,3
3,2
3,1
3,0
3210
3
0
3,
1
1000
3300
3630
1331
)1(
)1(
)1(
)(
)(
)(
)(
],,,[)()(
16
Bezier曲线( 14/19)
? 递推公式 --De Casteljau算法
?
?
?
???????
??
?
?
? rninrPtPt
rPP
r
i
r
i
ir
i,,1,0,,,2,1)1(
0,
1
1
1 ??
计算过程 几何解释
17
Bezier曲线( 15/19)
曲线的拼接
?
?
?? m
i
mii tB E ZPtP
0
,)()( ?
?
?? n
j
nij sB EZQsQ
0
,)()(
18
Bezier曲线( 16/19)
? 零阶几何连续条件
? 一阶几何连续条件
? 二阶几何连续条件?
0)1( QP m ?
0)1( QP m ?
)(0)2( 011 QQPP mm ????? ? ??
三点共线,且 Q1,Pm-1在连接点的异侧
自学
19
反求控制顶点
? 给定 n+1个型值点,要求构造一条 Bezier曲线通过这些点
Bezier曲线( 17/19)
?
?
?
?
??
?
?
?
?
??????
?
?
nn
nn
nn
n
n
n
ni
PQ
niCPniniCPniCPQ
PQ
.,,
)/(.,,)/()/1()/1(
.,,
11
1
0
0
00
20
优点:
? 形状控制直观
? 设计灵活
Bezier曲线( 18/19)
21
缺点:
? 所生成的曲线与特征多边形的外形相距较远
? 局部控制能力弱,因为曲线上任意一点都是所有给定
顶点值的加权平均
? 控制顶点数增多时,生成曲线的阶数也增高
? 控制顶点数较多时,多边形对曲线的控制能力减弱
? 曲线拼接需要附加条件,不太灵活
Bezier曲线( 19/19)
22
B样条曲线( 1/17)
产生:
? 1946年,Schoenberg发表关于 B样条函数的第 1篇论文
? 1973年前后,Gordon,Riesenfield,Forrest等人受到 Bezier方法的
启发,将 B样条函数拓广成参数形式的 B样条曲线
优于 Bezier曲线之处:
? 与控制多边形的外形更接近
? 局部修改能力
? 任意形状,包括尖点、直线的曲线
? 易于拼接
? 阶次低,与型值点数目无关,计算简便
23
B样条曲线( 2/17)
定义:
? 给定 m+n+1个空间向量, (k=0,1,…,m+n),称
n次参数曲线
为 n次 B样条曲线的第 i段曲线( i=0,1,…,m )
? 它的全体称为 n次 B样条曲线,它具有 Cn-1连续性
kB?
?
?
? ???
n
l
nllini ttFBtP
0
,,10)()(
??
24
B样条曲线( 3/17)
为简化记号,取 i=0来代表样条中的任意一段
基函数为 B样条函数
??
?
? ???????
ln
j
nj
n
j
nl tjlntCntF
0
1,10)()1(!
1)(
?
?
? ???
n
l
nllini ttFBtP
0
,,10)()(
??
25
B样条曲线( 4/17)
二次 B样条
? n=2
? 抛物线
B0
B2
B1
M
P(0.5)
P(1)P(0)
26
B样条曲线( 5/17)
三次 B样条
? n=3,
.
P (
0 )
P (
1 )
,
,P(1)P 1
P 0
P 2
P 3
P(0)
P( μ )
.
.
.
.
.
.
P m
P n
P(t)
B0
B1
B2
B3
2/)()1(
2/)()0(
6/)4()1(
6/)4()0(
13
02
321
210
BBP
BBP
BBBP
BBBP
???
???
???
???
27
B样条曲线( 6/17)
三次 B样条的 C2连续性
? 如果增加一个控制顶点
P4,则前一段曲线是否
会受影响?
.,
P (
0 )
P ( 1
)
,
,P(1)P 1
P 0
P 2
P 3
P(0)
P( μ )
..
.
.
.
.
P m
P n
P(t)
P4
28
B样条曲线( 7/17)
特殊外形设计
? 三顶点共线
? 位于控制多边形边上的一个点
P0 P2
P1
M
P(0) P’(0)
P0 P2M P1P(0)
29
B样条曲线( 8/17)
特殊外形设计
? 四顶点共线
? 含有直线段的曲线
P0 P3P1 P2
P(0)
M1
P(1)
M2
30
B样条曲线( 9/17)
特殊外形设计
? 两顶点重合
P0 P2
P1
M
P’(0)
P0 P2M P1
P(0)
P(0)
31
B样条曲线( 10/17)
特殊外形设计
? 两顶点重合
? 相切于控制多边形边的曲线
P2
P5
P1
P0
P4
P3
32
B样条曲线( 11/17)
特殊外形设计
? 三顶点重合
? 含有尖点的曲线 P2
P6
P1
P0
P4P3
P5
33
B样条曲线( 12/17)
特殊外形设计
? 如何构造通过控制多边形某一顶点的 B样条曲线?
提示:
? 将控制多边形的首尾两条边各延长 1/6,将新的顶点置为
二重顶点
? 将控制多边形的首尾两条边各延长 1/2,利用三点共线
34
B样条曲线( 13/17)
在数据拟合中的应用
? 给定一组离散的型值点列,如何构造一条通过该组型值
点的 B样条曲线?
原问题:
? 给定控制顶点,计算曲线上的点kP?
?? ? ??? nl nllini ttBPtP 0,,10)()( ??
)(,tPni?
35
B样条曲线( 14/17)
目标:构造三次 B样条曲线通过型值点 Pi,i=1,2,…,n -
1
12
102
2
2
?? ???
???
nnn PBB
PBB
根据三次 B样条曲线端点性质
iiii PBBB 64 11 ??? ??
补充两个边界条件
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
1
1
2
1
1
1
2
1
0
2
6
...
6
6
2
...
101
141
......
141
141
101
n
n
n
n
P
P
P
P
P
B
B
B
B
B
追赶法
求解
36
B样条曲线( 15/17)
几种常见的边界条件:
? 首末两端加上导数条件
? 在控制多边形首末两条边的延长线上分别外延一点
? 设 B1=B0,Bn=Bn-1,重顶点
方法 1存在的问题:
? 首末端导数难以给出方法 2存在的问题:
? 三点共线导致端点曲率为 0方法 3存在的问题:
? 是方法 2中外延距离为 0的特例
37
B样条曲线( 16/17)
基于曲率参数的边界条件构造法
解决零曲率问题
SuXiaohong,LiDong,ZhangTianwen,A
new method to build boundary conditions
for nonuniform B-splines interpolation,
Journal of Harbin Institute of Technology
( In English), 2000,7(4):59-62
38
B样条曲线( 17/17)
优点:
? 与控制多边形的外形更接近
? 局部修改能力
? 任意形状,包括尖点、直线的曲线
? 易于拼接
? 阶次低,与型值点数目无关,计算简便
缺点:
? 不能精确表示圆