在上一篇博客中论述了贝塞尔曲线,本篇将介绍b样条曲线。

b样条曲线是贝塞尔曲线的更一般化,贝塞尔曲线是b样条曲线的特殊列。 与贝塞尔曲线相比,b样条曲线由线段组成,每个参数的区间为[ 0,1 ]。 这将克服贝塞尔曲线更改其中一个控制点和曲线上的所有点发生更改的缺点。

b样条曲线的公式如下。

其中,di (I=0,1…n )是控制点,k是规定基函数的次数,Ni,k ) I=0,1…n )是k次b样条基函数,最高次数为k。 u表示参数序列,也就是b样条曲线段函数中的参数。

b样条函数的表达式如下:

在此,规定I为节点编号,k为基函数的次数,0/0为0。 这就是Cox-deBoor算法的公式。

节点和控制点不同,满足控制关系m 1=n k 2。 也就是说,有3个控制点控制的2次b样条曲线时,其节点数以3 2 2=7.Boehm给出节点的插入式。

在此,r是新插入的节点t在节点序列中的重复度。

如上图所示,控制点Pj生成新的控制点pj’。

b样条曲线总体上可分为均匀和非均匀。

根据上述说明,设计B-样条曲线需要一系列控制点、一系列节点和一系列系数。 每个系数对应于控制点,满足所有曲线段连接的连续条件的是b样条曲线。

既然了解了上面的整体情况,接下来我们将从b样条函数开始,介绍一些控制点,以及如何根据给定b样条函数的阶数k绘制b样条曲线。

如上图所示,可以看出基函数的系数定义如在图中所述,各自的系数范围为[ 0,1 ]区间。 另一方面,基函数中的Ni、k(u )可以用以下杨辉三角形状表示,例如,求第1段区间的1次基函数n1、1需要n1、0和n2、0,其他依次类推。

下图为本人从基函数导出的b样条曲线。 在此,如果控制点数为3(n=2),基函数的最高次数为2 ) k=2),则节点总数为m 1=n k 2=6。 在导出中,为了容易计算,各节点的代入分别设为0、1、2、3、4、5。

最后,得到b样条曲线各段的函数表示。 通常,打开b样条曲线的定义域被定义为[up,um-p],因此如上所述导出的区间只有[ 2,3 ]区间有意义,得到控制点的“‘fullsupport”。

b样条有三种类型。

如果起点和终点的重叠度最大值加1,则开b样条曲线变为Clamped B样条曲线,起点和终点重合,如果重叠度为p 1,则为闭b样条曲线。 上图的clamped有n 1个控制点(n=9)以及p=3)。 那么,m必须是13,所以节点向量具有14个节点。 第一个p 1=4和最后四个节点必须相同,才能达到clamped效果。 剩下的14-(4)=6个节点可以位于定义域中的任何位置。 实际上,曲线是由节点向量u={0、0、0、0、0.14、0.28、0.42、0.57、0.71、0.85、1、1、1和1}生成的。

请本人在网上的各种博客上查阅了解本文的内容,除本人导出完成外,还随时交流。 最后附上b样条基础知识博客链接。 这个译文对我有很大的帮助,谢谢你的博客分享!

飞艇7码滚雪球技巧可以用以下杨辉三角形状表示,例如,求第1段区间的1次基函数n1、1需要n1、0和n2、0,其他依次类推。

下图为本人从基函数导出的b样条曲线。 在此,如果控制点数为3(n=2),基函数的最高次数为2 ) k=2),则节点总数为m 1=n k 2=6。 在导出中,为了容易计算,各节点的代入分别设为0、1、2、3、4、5。

最后,得到b样条曲线各段的函数表示。 通常,打开b样条曲线的定义域被定义为[up,um-p],因此如上所述导出的区间只有[ 2,3 ]区间有意义,得到控制点的“‘fullsupport”。

b样条有三种类型。

如果起点和终点的重叠度最大值加1,则开b样条曲线变为Clamped B样条曲线,起点和终点重合,如果重叠度为p 1,则为闭b样条曲线。 上图的clamped有n 1个控制点(n=9)以及p=3)。 那么,m必须是13,所以节点向量具有14个节点。 第一个p 1=4和最后四个节点必须相同,才能达到clamped效果。 剩下的14-(4)=6个节点可以位于定义域中的任何位置。 实际上,曲线是由节点向量u={0、0、0、0、0.14、0.28、0.42、0.57、0.71、0.85、1、1、1和1}生成的。

请本人在网上的各种博客上查阅了解本文的内容,除本人导出完成外,还随时交流。 最后附上b样条基础知识博客链接。 这个译文对我有很大的帮助,谢谢你的博客分享!