当前位置:文档之家› 计算机图形学第8讲B样条曲线

计算机图形学第8讲B样条曲线

n
A[P(t)] A[Pi ]Ni,k (t) , t [tk1,tn1] i0
即在仿射变换下,的表达式具有形式不变性。
– 直线保持性 控制多边形退化为一条直线时,曲线也退化 为一条直线。
计算机图形学
B样条曲线的性质
– 造型的灵活性。
Pi1
Pi2
Pi3
Pi
P(t)
(a)四顶点共线
三重顶点
二重顶点
计算机图形学
• B样条基地的de Boor-Cox递推定义
1 Ni,1(t) 0
ti x ti1 Otherwise
Ni,k (t)
t ti tik 1 ti
Ni,k
1
(t)
tik t tik ti1
Ni1,k 1(t)
• 约定 0 0
0
• 确定第i个k阶B样条基底 Ni,k (t) 需要 ti,ti1,,tik 共 k+1个节点
计算机图形学
非均匀B样条曲线
任意分布的节点矢量
,只
要在数学上成立(节点序列非递减,两端节点
重复度≤k,内节点重复度≤k-1)都可选取。
这样的节点矢量定义了非均匀B样条基底。
计算机图形学
B样条曲线的性质
– 局部性
k 阶B样条曲线上参数为t [ti,ti1)的一点p(t)至多与k个 控制顶点 Pj ( j i k 1,,i) 有关,与其它控制顶点 无关;移动该曲线的第i个控制顶点Pi至多影响到定
由de boor算法,知下列公式成立
p(t
j
)
Pj[3] (t j
)
P[2] j 1
(t
j
)
p(t
j 1 )
P[3] j 1
(t
j 1 )
Pj[2] (t
j 1 )
p(t
j
)
3[
P[1] j 1
(t
j
)
P[2] j 1
(t
j
)]
p(t
j 1 )
3[ Pj[ 2 ]
(t
j 1 )
P[1] j 1
(t
j 1 )]
B样条曲线
• 1972年,Gordon、Riesenfeld等人提出了B样条 方法,在保留Bezier方法全部优点的同时,克 服了Bezier方法的弱点。
计算机图形学
Bezier曲线 Bernstein基底
计算机图形学
Bernstein基底
计算机图形学
3.3.1 B样条的递推定义和性质
• B样条曲线的方程定义为:
计算机图形学
B样条曲线的多样性
– 均匀与非均匀B样条
计算机图形学
B样条曲线的多样性
– 基底阶数k对B样条形状的影响
计算机图形学
B样条曲线的多样性
– 多重顶点对B样条形状的影响
计算机图形学
B样条曲线的多样性
– 顶点位置对B样条形状的影响
计算机图形学
3.3.3 de Boor 算法
• 欲计算B样条曲线上对应一点P(t),可以利用B样条曲 线方程,但是采用de Boor 算法,计算更加快捷。 – de Boor 算法的导出
计算机图形学
B样条基底的性质
n
– 权性。 Ni,k (t) 1
i0
t [tk1, tn1)
– 微分公式。
Ni,k (t)
k 1 tik 1 ti
Ni,k1(t)
k 1 tik ti1
N i 1,k 1 (t )
计算机图形学
B样条曲线类型的划分
– 曲线按其首末端点是否重合,区分为闭曲线和 开曲线。
算机图形学
B样条曲线的性质
– 变差缩减性 设平面内 n+1 个控制顶点 构成B样条曲线 P(t) 的 特征多边形。在该平面内的任意一条直线与 P(t) 的交点个数不多于该直线和特征多边形的交点 个数。
– 几何不变性 B样条曲线的形状和位置与坐标系的选择无关。
计算机图形学
B样条曲线的性质
– 仿射不变性
图3.1.32 三次B样条曲线插入 一个节点(t t2 t3)
计算机图形学
3.3.5 B样条曲面
• 给定参数轴u和v的节点矢量
U [u0 ,u1,,um p ]
V [v0 , v1,, vnq ]
p×q阶B样条曲面定义如下
mn
P(u,v)
Pij Ni, p (u)N j,q (v)
i0 j0
• 曲线n+1个控制点需要n+1个B样条基Ni,k (t)底需要
n+k+1个节点 t0,t1,, tik
B样条的注意点
• 控制多边形的顶点数=B样条基底函数的个数 • B样条基底函数的个数和阶数k是独立概念 • 控制多边形的顶点个数n不能确定B样条基底阶数k • 需要定义节点矢量T • 设控制多边形顶点数为n+1,B样条基底阶数为k
计算机图形学
B样条基底的计算
• 3阶B样条基底
计算机图形学
B样条基底的计算
• 3阶B样条基底
计算机图形学
B样条基底的支撑区间
计算机图形学
B样条基底的支撑区间
计算机图形学
B样条基底的性质
局部支撑性
0
Ni,k
(t)
0
以k=4,n=4为例
t [ti , tik ) otherwise
t0, t1 , t2, t3, t4, t5 , t6, t7, t8
计算机图形学
准均匀B样条基底
计算机图形学
分段Bezier曲线
节点矢量中两端节点具有重复度k,所有内节点重复度 为k-1,这样的节点矢量定义了分段的Bernstein基。
计算机图形学
分段Bezier曲线
B样条曲线用分段Bezier曲线表示后,各曲线段就 具有了相对的独立性,移动曲线段内的一个控制 顶点只影响该曲线段的形状,对其它曲线段的形 状没有影响。并且Bezier曲线一整套简单有效的算 法都可以原封不动地采用。缺点是增加了定义曲 线的数据,控制顶点数及节点数。
计算机图形学
B样条曲线的性质
– 分段参数多项式
P(t)在每一区间上都是次数不高于k-1的参 数t的多项式
– 导数公式
P'(t)
n
Pi Ni,k (t)
n
Pi Ni,k(t)
i0
i0
(k
1)
n i 1
Pi tik 1
Pi1 ti
N i ,k 1 (t )
t [tk1, tn1)
一般来说,2 ≤k ≤n+1 节点数=n+k+1
计算机图形学
B样条基底的计算
计算机图形学
B样条基底的计算
• 以节点数4为例: • 从定义可得1阶B样条基底:
计算机图形学
B样条基底的计算
• 计算2阶基底 • 从递推公式
计算机图形学
B样条基底的计算
• 2阶基底
计算机图形学
B样条基底的计算
• 计算3阶基底 • 从递推公式
– B样条曲线按其节点矢量中节点的分布情况, 可划分为四种类型。
计算机图形学
均匀B样条曲线
节点矢量中节点为沿参数 轴均匀或等距分布,所有 节点区 间长度为常数。这样的节点矢量定义了均匀的B样条基。
计算机图形学
准均匀B样条
与均匀B样条曲线的差别在于两端节点具有重复度k,这样 的节点矢量定义了准均匀的B样条基。均匀B样条曲线没有 保留Bezier曲线端点的几何性质,即样条曲线的首末端点不 再是控制多边形的首末端点。采用准均匀的B样条曲线解 决了这个问题
P1 ik 2
P1 ik 3
Pi1
Pi1
Pi
图3.1.30 实线框中k个新顶点 取代虚线框中k-1个原 始顶点
P1
P21
P2
P11
P31
P0
P3
t
t1 t2 t3 t4 t5 t6
图3.1.31 三次B样条曲线插入 一个节点 t [t3, t4 ]
计算机图形学
P2 P1 P11
P0 t1
P3 t
t2 t4 t5 t6 t3
是控制多边形的顶点 (i=0,1,..,n) 称为k阶(k-1次)B样条基函数 B样条基函数是一个称为节点矢量的非递减的参 数t的序列所决定的k阶分段多项式,也即为k阶( k-1次)多项式样条。
计算机图形学
• B样条基地的de Boor-Cox递推定义
计算机图形学
• B样条基地的de Boor-Cox递推定义
[1] j k 3
[2] j k 3
Pj
P[1] j
P[2] j
P[k 1] j
Pn
计算机图形学
De Boor 算法的几何意义
– de Boor算法有着直观的几何意义 割角,
即以线段
Pi[r
]
P[r] i 1
割去角Pi[r 1]
。从多边形
P P jk1 jk2 Pj 开始,经过 k-1 层割角,最后
计算机图形学
Pij构成一张控制网格,称为B样条曲面的特征
网格。Ni, p (u) 和 N j,q (v) 是B样条基,分别由
节点矢量U和V按deBoor-Cox递推公式决定。
计算机图形学
P23
P03
P33
P02
P12 P22
P32
P11
P21
P01

j
j
P(t) Pi Ni,k (t)
P[1] i
(t
)
Ni,k
1
(t
)
i jk 1
i jk2
反复使用上述递推公式,可得 P(t) Pj[k1](t)
相关主题