12月学习进度9/31——计算机图形学期末准备06四阶三次B样条曲线矩阵形式推导及MATLAB实现
Posted fu_GAGA
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12月学习进度9/31——计算机图形学期末准备06四阶三次B样条曲线矩阵形式推导及MATLAB实现相关的知识,希望对你有一定的参考价值。
B样条曲线的递归定义
B样条曲线与给定的阶数
k
k
k 和 节点向量都有关
↓
即使选取的阶数
k
k
k 相同,但节点向量不同,则得到的曲线也不同
一些规律:
递推图示:
k k k 阶B样条 N i , k ( u ) N_i,k(u) Ni,k(u) 可由两个 k − 1 k-1 k−1 阶 N i , k − 1 ( u ) , N i + 1 , k − 1 ( u ) N_i,k-1(u),N_i+1,k-1(u) Ni,k−1(u),Ni+1,k−1(u) 递推得到
系数的含义:
系数分别为
u
−
u
i
u
i
+
k
−
1
−
u
i
\\fracu-u_iu_i+k-1-u_i
ui+k−1−uiu−ui
和
u
i
+
k
−
u
i
u
i
+
k
−
u
i
+
1
\\fracu_i+k-u_iu_i+k-u_i+1
ui+k−ui+1ui+k−ui
分母分别为两个
k
−
1
k-1
k−1 阶基函数的支撑区间:
- N i , k − 1 ( u ) N_i,k-1(u) Ni,k−1(u) 的支撑区间为 [ u i , u i + k − 1 ) [u_i,u_i+k-1) [ui,ui+k−1)
- N i + 1 , k − 1 ( u ) N_i+1,k-1(u) Ni+1,k−1(u) 的支撑区间为 [ u i + 1 , u i + k ) [u_i+1,u_i+k) [ui+1,ui+k)
分子为参数 u u u 将 N i , k ( u ) N_i,k(u) Ni,k(u) 的支撑区间 [ u i , u i + k ) [u_i,u_i+k) [ui,ui+k) 划分为两部分
- u − u i u-u_i u−ui 为参数 u u u 距离左端节点位置
- u i + k − u u_i+k-u ui+k−u 为参数 u u u 距离右端节点位置
分子(距离)除以分母(区间长度)后,将距离归一化到
(
0
,
1
)
(0,1)
(0,1) 之间
因此,
N
i
,
p
(
u
)
N_i,p(u)
Ni,p(u) 是
N
i
,
p
−
1
(
u
)
N_i,p-1(u)
Ni,p−1(u) 和
N
i
+
1
,
p
−
1
(
u
)
N_i+1,p-1(u)
Ni+1,p−1(u) 的线性组合,有两个系数,都在
u
u
u 上是线性的,在0和1之间。
四阶均匀B样条曲线
1.计算四阶B样条基函数 N i , 4 ( u ) N_i,4(u) Ni,4(u)
根据递推公式计算:
如上图所示,B样条基函数
N
i
,
4
(
u
)
N_i,4(u)
Ni,4(u) 由四段三次多项式曲线拼接而成。
四条三次多项式曲线如下图所示:
(分别为实线、虚线、点线、点划线)
其中B样条基函数 N i , 4 ( u ) N_i,4(u) Ni,4(u) 曲线为下图中红色曲线:
均匀B样条基函数在曲线定义域内各个节点区间上都有相同图形
(相同公式,其中所有的
u
i
+
1
−
u
i
u_i+1-u_i
ui+1−ui 都相同)
上图可以分析B样条的局部控制特性
例:
第一个控制点
P
i
P_i
Pi 只与
N
i
,
4
(
u
)
N_i,4(u)
Ni,4(u) 相乘(由B样条曲线定义式得),所以其影响
N
i
,
4
(
u
)
N_i,4(u)
Ni,4(u) 的支撑区间
(
u
i
,
u
i
+
4
)
(u_i,u_i+4)
(ui,ui+4) 上的曲线的形状
2. 简化函数形式
以其中一个节点区间 [ u i + 3 , u i + 4 ) [u_i+3,u_i+4) [ui+3,ui+4) 为例:
上图中 ( i , j ) (i,j) (i,j) 表示第 i i i 个基函数的第 j j j 段分片
上述公式中很多
u
−
u
i
+
j
u-u_i+j
u−ui+j 形式的因子
↓
↓ 令
t
j
=
u
−
u
i
+
j
t_j = u-u_i+j
tj=u−ui+j
↓
(仍以区间
[
u
i
+
3
,
u
i
+
4
)
[u_i+3,u_i+4)
[ui+3,ui+4) 为例)
引入
t
3
=
u
−
u
i
+
3
t_3 = u-u_i+3
t以上是关于12月学习进度9/31——计算机图形学期末准备06四阶三次B样条曲线矩阵形式推导及MATLAB实现的主要内容,如果未能解决你的问题,请参考以下文章
12月学习进度3/31—计算机图形学期末准备01拉格朗日插值 + 三次Hermite插值
12月学习进度7/31——计算机图形学期末准备04B样条曲线及其基函数的定义
12月学习进度8/31——计算机图形学期末准备05B样条曲线和基函数的性质
12月学习进度5/31——计算机图形学期末准备02规范化两点三次Hermite插值及MATLAB实现