B 样条曲线
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
t [ti ,ti2 )
t ti ti1 ti
ti2 t ti2 ti1
t [ti ,ti1) t [ti1, ti2 )
Ni,2 (t)
0
其它
N
i,
的图形
2
Ni,k(t)在区 ti,tik 间 上有定义, 者称 的后 支者 撑
2020/3/29
14
K=2时定义的曲线示例
n
P(t) PiNi,2(t) Pi i0
Ni,2 (t)
t [ti ,ti1)
t ti ti2 ti
Ni,2 (t)
ti3 t ti3 ti1
Ni1,2 (t)
t [ti1, ti2 )
ti3 t
ti3 ti1 0
Ni1,2 (t)
t [ti2 , ti3 ) 其它
2020/3/29
16
续前页:
当t [ti ,ti1)时:
局限性:全局控制
2020/3/29
2
B-样条曲线概念
控制顶点
Pi
控制多边形
n
P(t) Pi Nik (t) i0
B-样条基函数
B-样条曲线
2020/3/29
3
控制顶点作用的局部化
• 0次(1阶)曲线
ti
ti+1
0次基函数:Ni,1
(t
)
1 0
2020/3/29
t [ti , ti1) 其它
t
40
3次准均匀B-样条示例
2020/3/29
41
B样条曲线到分段Bezier曲线的转换
• 节点矢量:两端节点具有重复度k,所有内节点重复
度为k-1 注: (k1)mn'
{0,0,...,0,1,1,...,1,2,..., m 1,m 1,..., m1, m , m,...,m}
k个
k 1个
k 1个
k个
k个
2020/3/29
38
准均匀B样条曲线(2)
• 端点位置矢量的计算
N0,4 (0) 1,N1,4 (0) 0,N2,4 (0) 0,N3,4 (0) 0
3
P(0) Pi Ni,4 (0) P0 i0
特点:曲线首末点与控制顶点重合
2020/3/29
39
3次均匀B-样条示例
2020/3/29
2020/3/29
12
K=1时定义的曲线示例
n
P(t) PiNi1(t) Pi i0
P0
P1
t0 t1
ti
2020/3/29
Pn t n 1
13
2阶B-样条基函数
• K=2时的基函数
Ni,2 (t)
t ti ti1 ti
Ni,1(t)
ti2 t ti2 ti1
N i 1,1 (t )
第三节 B-样条曲线
本节内容: ▪ B-样条曲线定义 ▪ B-样条曲线性质 ▪ B-样条曲线的离散生成 ▪ 有理B-样条曲线
2020/3/29
1
分段参数多项式曲线分析
• Hermit曲线
– 分段插值曲线 – 全局控制曲线 – 多项式次数与顶点数相关
• Bezier曲线
– 全局控制曲线 – 多项式次数与顶点数相关 – 拼接要求不易满足
36
练习:
• 推导出 [t j ,t j1] 区间上3次均匀B样条曲 线的矩阵表达式。
2020/3/29
37
准均匀B-样条曲线(1)
• 节点矢量:在首末端点处有k次重复度,中间节
点区间长度为大于0的常数,即:
{0,0,...,0,1,2,..., n k 1, n k 2, nk2,...,n k2}
n
P(t) Pi Ni,k (t),t [tk1, tn1] 共n-k+2段 i0
B-样条曲线示例
2020/3/29
11
1阶B-样条基函数
K=1时的基函数
1 Ni,1(t) 0
t [ti ,ti1) 其它
N i,1 (t )
Ni,1(t)的图形
Ni,1(t)在区 ti,ti1 间 上有定义者 ,的 称支 后撑 者
2020/3/29
8
支撑区间…
2020/3/29
9
曲线段及控制点
[t0,t1] [t1,t2] [t2,t3] [t3,t4] [t4,t5] [t4,t5]
2020/3/29
10
B-样条曲线的定义
t n 1个控制点 Pi
n i0
及参数节点向量Tn,k
nk
i i0 (ti ti1)
确定如下的k阶(k 1次)B样条曲线:
在每一个区间上至多只有k个基函数非零,它们是:
N i k 1 , k ( t ) N i , k 2 , k ( t )N , i , k ( . t ) ..,
Ni,k(t)在每个 [ti,ti区 k)上 间都是次k 数 1的不 多高 项于 式 从而在整个分 参段 数多 轴项 上式 是
2020/3/29
k个
基函数:以上节点矢量定义分段的Bernstein基函数
2020/3/29
42
分段Bezier曲线
• 各曲线段相对独立性:移动曲线段内的一个控制顶点只 影响该曲线段的形状,对其它曲线段的形状没有影响
• Bezier曲线的算法都可以原封不动地采用 • 其它类型的B样条曲线可通过插入节点的方法转换成分
常令: 1,t00构造三次 B样 均条 匀曲 : 线
n
P(t) PiNi,4(t),t[3,n1] i0
2020/3/29
32
三次均匀B样条曲线(2)
此时:Tn,4 {0,1,..., n 4}
1 t [i ,i 1)
Ni,1(t) 0
其它
根据如下的基函数递推公式计算Ni,4 (t):
Ni,k
2020/3/29
20
3阶B-样条基函数图形
N i,3 (t)
Ni,3(t)的图形
2020/3/29
21
3阶B样条曲线示例
t2
tn1
T=[t0,t1,…,tn+1,tn+2,tn+3]
2020/3/29
22
知其然,知其所以然…
• 阶数与次数 • 顶点数 • 节点矢量与定义区间 • 段数 • 控制点及其影响域
Ni1,1(t)
ti3 t ti3 ti2
N i 2,1 (t ))
t ti ti2 t ti3 t t ti1 ti2 ti ti2 ti1 ti3 ti1 ti2 ti1
2020/3/29
18
续前页:
当t [ti2 ,ti3)时:
N i,3 (t )
ti3 t ti3 ti1
Ni,3 (t )
t ti ti2 ti
Ni,2 (t)
ti3 t ti3 ti1
Ni1,2 (t)
t ti ti2 ti
( t ti ti1 ti
Ni,1(t)
ti2 t ti2 ti1
N i 1,1 (t ))
ti3 t ti3 ti1
( t ti1 ti2 ti1
Pi N
i0
tik t tik ti1
i,k (t),t [tk
Ni1,k1(t),i
1, tn1]
0,1,..., n
2020/3/29
24
B-样条基函数的性质
• 局部性 • 权性 • 连续性
2020/3/29
25
B-样条基函数的局部性
Ni,k(t)只在区 [ti,间 tik)上取正值,在其 上它 为区 零间 。
2020/3/29
23
上节要点回顾
• Bezier曲线
– Bernstain基函数
– Bezier曲线定义及性质
– 有理Bezier曲线
• B-样条曲线
– B-样条基函数(节点矢量)
– B-样条曲线定义
n
N••••Ni阶顶定段,ik,1((t数点义数t))/数区次ti间10tk数1 titti N[tPii,其k,(t1it它()1t))
(t)
t k
i 1
N i ,k 1 (t )
i
k
k 1
t
N i 1,k 1 (t ),i
0,1,..., n
2020/3/29
33
三次均匀B样条曲线(3)
注N i: ,k(t)N 0,k(ti) 基函数的平移性
2020/3/29
计算N0,4 (t)
34
三次均匀B样条曲线(4)
则,在[t j ,t j1)(3 j n)上的曲线段为:
j
Ni,k (t) N j,1(t) 1
i jk 1
2020/3/29
27
B-样条基函数的连续性
N 'i,k
(t)
(k
1)
Ni ,k 1 (t ) tik1 ti
Ni1,k1(t)
tik
ti1
Ni,k (t)在l重节点处至少为k 1 l次参数连续。
2020/3/29
Fra Baidu bibliotek
28
问题:3阶B样条曲线生成
j
j
P(t) Pi Ni,4 (t) Pi N0,4 (t i)
i j3
i j3
展开为矩阵形式得:
1 3 3 1 1
[ Pj 3 ,
Pj 2
,
Pj 1 ,
Pj
]
1 6
4 1
0 3
6 3
3
3
(t
(t
j) j)2
0 0
0
1
(t
j)3
P(4)
P(3)
P(5)
2020/3/29
• 已知6个控制顶点,请定义出节点矢量均 匀的2次B样条曲线,并回答以下问题。
1. 定义区间是什么? 2. 曲线分为几段? 3. 给出第二段曲线的表达式
2020/3/29
29
B-样条曲线的分类
根据节点矢量的不同形式分类
均匀B样条曲线 准均匀B样条曲线
分段Bezier曲线 非均匀B样条曲线
2020/3/29
Ni1,2 (t)
ti3 t ti3 ti1
( t ti1 ti2 ti1
Ni1,1(t)
ti3 t ti3 ti2
N i 2,1 (t ))
ti3 t ti3 t ti3 ti1 ti3 ti2
2020/3/29
19
t ti t ti
ti2 ti ti1 ti
Ni,2 (t)
Ni
,
的图形
2
P0
P1
t0 t1 t2
ti
Pn tn1 tn2
2020/3/29
15
3阶B-样条基函数
• K=3时的基函数
Ni,3 (t )
t ti ti2 ti
Ni,2 (t)
ti3 t ti3 ti1
Ni1,2 (t)
t [ti ,ti3)
t ti ti2 ti
1次?2次?…?
4
续
• 1次曲线(2阶)
Ni,2 (t)
Ni
的图形
,2
2次基函数:Ni,2(t)
2020/3/29
2次?3次?…,k+1次基函数?
t
5
B-样条基函数的定义
• de Boor-Cox定义: (约定:0/0=0)
t 给定参数t轴上的节点分割Tn,k
i
n k ,则如下的
i0
Ni,k称为Tn,k上的k阶(k 1次)B样条基函数
Ni,1(t) Ni,k (t)
1 0
t
tik
1
t [ti ,ti1) 其它
ti ti
N i ,k 1 (t )
tik t tik ti1
N i 1,k 1 (t ),i
0,1,..., n
2020/3/29
6
关于递推定义的系数
Ni,k1(t)
t ti tik 1 ti
Ni,k (t)
26
B-样条基函数的权性
n
Ni,k(t)1 t[tk1,tn1]
i0
证明:在任意参数区间[t j ,t j1) [tk1,tn1]上权性成立。
t [t j , t j1],由Ni,k (t)的局部性得到:
n
j
Ni,k (t)
Ni,k (t)
i0
i j k 1
上式右端根据递推公式展开并化简得到:
Ni,3 (t)
t ti ti2 ti
ti2 t ti2 ti1
ti3 t ti3 ti1
t ti1 ti2 ti1
ti3 t
ti3
ti 0
1
ti3 t ti3 ti2
t [ti ,ti1) t [ti1, ti2 ) t [ti2 , ti3 )
其它
Ni,k(t)在区 ti,tik 间 上有定义, 者称 的后 支者 撑
Ni,3 (t )
t ti ti2 ti
Ni,2 (t)
t ti ti2 ti
( t ti ti1 ti
Ni,1(t)
ti2 t ti2 ti1
N i 1,1 (t ))
t ti t ti ti2 ti ti1 ti
2020/3/29
17
续前页:
当t [ti1,ti2)时:
tik t tik ti1
Ni1,k (t),i
0,1,..., n
ti ti
2020/3/29
ti+1
t
ti+1
t
ti+1
t
ti+k-1 ti+k-1 ti+k-1
ti+k
ti+k
7
基函数的影响范围
[t0,t1] [t1,t2] [t2,t3] [t3,t4] [t4,t5]
Ni,k(t)的支撑区间为:[ti,ti+k]
30
均匀B-样条曲线
• 均匀节点矢量:所有节点区间长度为大于0的常数 • 均匀B-样条基:在均匀节点矢量上定义的B-样条基 • 均匀B-样条曲线:在均匀B-样条基上定义的曲线
2020/3/29
31
例:三次均匀B样条曲线(1)
t 参数节点向量Tn,4
i
n4 i0
满足:ti
1
ti
0
(i 0,1,..., n 3), 其上可定义3次均匀B 样条曲线
段Bezier曲线类型 • 缺点:增加了定义曲线的数据,至多增加k-1倍
2020/3/29