三次hermite样条曲线 和 三次B样条曲线有啥区别和联系

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三次hermite样条曲线 和 三次B样条曲线有啥区别和联系相关的知识,希望对你有一定的参考价值。

在最初学三次样条曲线时,给定xi,yi,再求出mi,利用Hermite插值公式得到三次样条分段函数,可以满足光滑性。最近听说很多地方用的样条曲线都是B样条曲线,看书也没看懂B样条是怎么个道理,它和之前的普通三次样条曲线有什么区别和联系呢?谢谢
比普通的样条曲线有什么优点呢

  hermite插值是用一条曲线来逼近,最高次数可能高于三次;
三次样条插值是用连续的曲线来逼近,最高次数是三次。

  样条曲线是经过一系列给定点的光滑曲线。最初,样条曲线都是借助于物理样条得到的,放样员把富有弹性的细木条(或有机玻璃条),用压铁固定在曲线应该通过的给定型值点处,样条做自然弯曲所绘制出来的曲线就是样条曲线。样条曲线不仅通过各有序型值点,并且在各型值点处的一阶和二阶导数连续,也即该曲线具有连续的、曲率变化均匀的特点。
  非均匀有理 B 样条曲线(NURBS),是一种用途广泛的样条曲线,它不仅能够用于描述自由曲线和曲面,而且还提供了包括能精确表达圆锥曲线曲面在内各种几何体的统一表达式。自1983年,SDRC公司成功地将NURBS模型应用在它的实体造型软件中,NURBS已经成为计算机辅助设计及计算机辅助制造的几何造型基础,得到了广泛应用。
  AutoCAD 使用的就是这种NURBS数学模型来创建样条曲线,这也是在MDT中进行曲面造型和实体造型的基础。
  在详细阐明AutoCAD用于构造和修改NURBS曲线(以下简称"样条曲线")的各项功能之前,从数学和几何角度了解关于NURBS曲线的几个术语,是非常有必要的。这里仅解释与理解AutoCAD中的NURBS曲线有关的名词,其它相关详细数学知识,请参见有关资料。
  NURBS曲线的相关术语
  型值点或拟合点:所求的样条曲线应通过的已知给定点。
  特征多边形或控制多边形:样条曲线是由一些折线组成的多边形构造出来的。简单地说,以数值计算的方法,用光滑的参数曲线段逼近该折线多边形,就构造出一条样条曲线。改变该多边形的顶点和个数,会影响曲线的形状。这里所说的折线多边形,就是样条曲线的特征多边形或控制多边形。
参考技术A 它们的区别就相当于多项式插值和牛顿插值的区别;本质上是一种东西,只是形式不同而已,这使得B样条更容易处理

B-样条曲线(B-spline Curve)总结

参考技术A

B-样条曲线,是B-样条基函数的线性组合,是 贝塞尔曲线 的一般化。
给定n+1个控制点,P 0 ,P 1 , ..., P n 以及一个节点向量U = u 0 ,u 1 , ..., u m , p 次B-样条曲线由这些控制点和节点向量U 定义,其公式为:

在上式中, N i,p (u)是 p次B-样条基函数。

设U 是m + 1个非递减数的集合,u 0 <=u 1 <= u 2 <= ... <= u m 。u i 称为节点(knots), 集合U 称为节点向量(knot vector), 半开区间[u i , u i+1 ) 是第i个节点区间(knot span)。注意某些u i 可能相等,某些节点区间会不存在。如果一个节点u i 出现 k 次 (即,u i = u i+1 = ... = u i+k-1 ), 其中 k > 1, u i 是一个重复度(multiplicity)为k 的多重节点,写为 u i (k)。 否则,如果u i 只出现一次,它是一个简单节点。如果节点等间距(即, u i+1 - u i 是一个常数,对 0 <= i <= m - 1),节点向量或节点序列称为均匀的;否则它是非均匀的。 一般情况下 ,我们经常使用 u 0 = 0和 u m = 1,所以定义域是闭区间[0,1]。

为了定义B-样条基函数,我们还需要一个参数,基函数的次数(degree)p,第i个p次B-样条基函数,写为N i,p (u),递归定义如下:

1.如果节点向量没有任何特别的结构,那么产生的曲线不会与控制折线(polyline)的第一边(leg)和最后一边(leg)接触,如下面左图所示。这种类型的B-样条曲线称为 。
2.我们可能想强制曲线使得它分别与第一个控制点和最后一个控制点的第一边和最后一边相切,像贝塞尔曲线那样。为了做到这些,第一个节点和最后一个节点必须是重复度为p+1。这就产生了所谓的 。参见下边中间的图。
3.通过重复某些节点和控制点,产生的曲线会是 。这种情况,产生的曲线的开始和结尾连接在一起形成了一个闭环如下边右图所示。

对于open(B-样条曲线),定义域是[u p ,u m-p ]
考虑一个由14个控制点(即,n = 13)定义的 6次 (即,p = 6) B-样条曲线。其节点的数目是 21 (即, m = n + p + 1 = 20)。如果节点向量是均匀的, 节点是0, 0.05, 0.10, 0.15, ..., 0.90, 0.95 和 1.0。 开(open)曲线定义在[u p , u m-p ] = [u6, u14] = [0.3, 0.7]上且与第一边和最后一边不相切。下面上图显示了曲线而下图给出了B-样条基函数。

有许多方法来产生闭曲线。简单的一种就是或者wrapping控制点或者wrapping节点向量。

假设我们想构建一个p次闭(closed)B-样条曲线C(u),由n+1 控制点P 0 ,P 1 , ..., P n .定义。节点数目是m+1, 其中 m = n + p + 1. 这儿是构建过程:

假设我们想要构建一个由n+1个控制点 P 0 , P 1 , ..., P n 定义的p次闭B-样条曲线C(u) 。构建过程如下:

本文旨在加深对B-样条曲线的理解,主要是对下述教程的总结,具体内容可以参考如下教程:
B-样条曲线教程

以上是关于三次hermite样条曲线 和 三次B样条曲线有啥区别和联系的主要内容,如果未能解决你的问题,请参考以下文章

三次b样条曲线的基函数是固定的吗

B-样条曲线(B-spline Curve)总结

(5)三次样条和B样条

R软件可以做分段样条回归吗

12月学习进度9/31——计算机图形学期末准备06四阶三次B样条曲线矩阵形式推导及MATLAB实现

b样条曲线是在啥数学里讲的?