B-spline三次B样条曲线方程

这篇具有很好参考价值的文章主要介绍了B-spline三次B样条曲线方程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、B-样条基函数

它有两条贝塞尔基函数所没有的特性,

(1)定义域被节点细分(subdivided);

(2) 基函数不是在整个区间非零。实际上,每个B样条基函数在附近一个子区间非零,

因此,B-样条基函数相当“局部”。

1.节点

U 是m + 1个非递减数的集合,u0 <= u2 <= u3 <= ... <= umui称为节点(knots, 集合U 称为节点向量knot vector), 半开区间[uiui+1) 是第i个节点区间(knot span)。

注意某些ui可能相等,某些节点区间会不存在。如果一个节点 ui 出现 k 次 (即,ui = ui+1 = ... = ui+k-1), 其中 k > 1, ui 是一个重复度(multiplicity)为的多重节点,写为 ui(k)。

否则,如果ui只出现一次,它是一个简单节点。如果节点等间距(即, ui+1 - ui 是一个常数,对 0 <= i <= m - 1),节点向量或节点序列称为均匀的;否则它是非均匀的。

节点可认为是分隔点,将区间[u0, um]细分为节点区间。所有B-样条基函数被假设定义域在[u0, um]上。在本文中,我们经常使用u0 = 0和um = 1,所以定义域是闭区间[0,1]。

B-spline三次B样条曲线方程

 

二.三次B样条

B样条曲线分为近似拟合和插值拟合,

所谓近似拟合就是不过特征点,而插值拟合就是通过特征点,

但是插值拟合需要经过反算得到控制点再拟合出过特征点的B样条曲线方程。这里会一次介绍两种拟合算法。首先介绍B样条的曲线方程。

B样条曲线的总方程为:

B-spline三次B样条曲线方程

其中P i 是控制曲线的特征点,Fi,k​(u)则是K阶B样条基函数。

1.1 三次B样条曲线方程中基函数为:

B-spline三次B样条曲线方程


其中 表示阶乘。化成看的明白的式子就是(以四个控制点为例):

B-spline三次B样条曲线方程

将图片上的基函数代入到方程(1)中,就是:

B-spline三次B样条曲线方程


方程(3)就是三次B样条曲线方程。上式(2)的j是什么意思,其实j就是控制点的索引值。这里我把书上的公式摘抄下来,可能看起来更为清晰。参考书籍:《计算机图形学 第3版》何援军 第13章

三次B样条曲线计算

B-spline三次B样条曲线方程

B-spline三次B样条曲线方程

B-spline三次B样条曲线方程

B-spline三次B样条曲线方程

2 三次B样条曲线近似拟合 

近似拟合很简单。不需要求控制点,求得

B-spline三次B样条曲线方程

, 由上述方程(3),代入,就可以得到由这四个点近似拟合的一段三次B样条曲线,

起始点在P 0,终点在P 1,

对于闭合轮廓,最后一段可以取前两点做辅助,拟合实验结果我最后一块给出。这种近似拟合曲线光滑,但是最大不足就是不过特征点,也就是不过P i ​ ,需要过点需要反求控制点再拟合。

3 三次B样条插值拟合

B-spline三次B样条曲线方程文章来源地址https://www.toymoban.com/news/detail-456818.html

到了这里,关于B-spline三次B样条曲线方程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UE4物体随着样条线(Spline)运动

    一定要经过起止点,若干个控制点用于控制曲线弯曲的方向,最终形成一条 光滑的曲线 。 由于贝塞尔曲线点太多了不好控制,一般每四个点做一次贝塞尔曲线。得到的若干段相邻贝塞尔曲线的连接点需要共线且距离相同,即为 C1连续 (一阶连续可导)。 得到数学表达式如

    2024年02月11日
    浏览(34)
  • 在UE4蓝图中利用样条线组件(Spline)生成道路

    在场景中添加道路常用的有两种 一种是在三方建模软件(3Dmax Maya 等)建好后导入到UE中 第二种是在地形模式(Landscape)下设置地形的起伏形成道路或者做个 另一个还有“顶点绘制”,这个是给模型附加两种材质,再根据模型的顶点分布,显示一个隐藏一个,进而实现道路的

    2023年04月09日
    浏览(33)
  • 三次样条样条:Bézier样条和Hermite样条

    总结 What is the Difference Between Natural Cubic Spline, Hermite Spline, Bézier Spline and B-spline? 1.多项式拟合中的 Runge Phenomenon 找到一条通过N+1个点的多项式曲线 ,需要N次曲线。通过两个点的多项式曲线为一次,三个点的多项式曲线为二次。当点数较多时,曲线阶数增高,在端点处易出现

    2024年02月04日
    浏览(33)
  • 三次样条插值算法

       在[a,b]上分为n段,共n+1个点。插入3次多项式,并使其二阶导数连续的方法称为三次样条插值算法。 思路: 1.二阶导数为线性函数。 2.插值点的函数值已知、一阶导数、二阶导数连续。 3.加上边界条件即可求解。 边界条件 1.夹持条件:已知起点和终点的速度。 2.自然边界

    2024年02月11日
    浏览(31)
  • 三次样条插值——三弯矩方法

             三次样条插值方法,是将一个曲线函数分成多段,每相邻的两个标准点就是一个三次多项式函数.也就是说,n+1个标准点,共有 n 个三次函数.求解分段时共有4*n个未知系数  其相邻的分段函数之间连续,一阶导连续,二阶导也连续。 因此  每个分段三次样条函数要

    2024年01月23日
    浏览(30)
  • 曲线生成 | 图解B样条曲线生成原理(基本概念与节点生成算法)

    🔥附C++/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。 🚀详情:图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法 为了解决贝塞尔曲线无

    2024年02月19日
    浏览(28)
  • Matlab样条工具箱及曲线拟合

    Matlab样条工具箱提供了样条的建立、操作、绘制等功能. 建立一个样条曲线或曲面,根据前缀可分为4类: 前缀 类别 cs* 三次样条 pp* 分段多项式样条 sp* B样条,系数为基函数系数 rp* 有理B样条 函数操作:求值、求导数、求积分等; 节点操作:节点重数的设定、修改等. 1.三次

    2024年02月08日
    浏览(41)
  • 三次样条插值(python完美实现,三种形式都有!)

    使用的是公式法迭代,没有用牛顿,我认为更加精准,牛顿只是方便手算误差自然大。 ----以上为个人思考与见解,有误请指点,有想法也可联系交流!                ~~~~~~~~~~~~~~                             谢谢观看!

    2024年02月08日
    浏览(28)
  • 【运动规划算法项目实战】如何实现三次样条插值(附ROS C++代码)

    三次样条插值是一种广泛应用于数据拟合和插值的方法。它通过使用三次多项式在给定的一组数据点之间进行插值,以实现平滑的拟合效果。三次样条插值的优点是可以平滑地拟合给定的数据点,而不会产生震荡或振荡现象。 三次样条插值是机器人路径规划中常用的一

    2024年02月14日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包