主题
Search

B样条


BSpline

B样条是贝塞尔曲线的推广。令一个向量,称为节点向量,定义为

 T={t_0,t_1,...,t_m},
(1)

其中 T 是一个非递减序列,其中 t_i in [0,1],并定义控制点 P_0, ..., P_n。定义次数为

 p=m-n-1.
(2)

“节点” t_(p+1), ..., t_(m-p-1) 被称为内部节点

定义基函数为

N_(i,0)(t)={1 if t_i<=t<t_(i+1) and t_i<t_(i+1); 0 otherwise
(3)
N_(i,j)(t)=(t-t_i)/(t_(i+j)-t_i)N_(i,j-1)(t)+(t_(i+j+1)-t)/(t_(i+j+1)-t_(i+1))N_(i+1,j-1)(t),
(4)

其中 j=1, 2, ..., p。那么由

 C(t)=sum_(i=0)^nP_iN_(i,p)(t)
(5)

定义的曲线是 B样条。

具体类型包括非周期 B样条(前 p+1 个节点等于 0,最后 p+1 个节点等于 1;如上图所示)和均匀 B样条(内部节点均匀分布)。没有内部节点的 B样条是贝塞尔曲线

曲线在出现 k 重复节点值的点处是 p-k 次可微分的。节点值决定了控制点控制的范围。

B样条在 Wolfram 语言中实现为BSplineCurve[pts]。


另请参阅

贝塞尔曲线, NURBS 曲线, 样条

使用 探索

引用为

Weisstein, Eric W. “B-Spline。” 来自 Web 资源。 https://mathworld.net.cn/B-Spline.html

学科分类