一、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样条

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

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

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

B样条曲线的总方程为:

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

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

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

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

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

三次B样条曲线计算

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

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

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

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

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

3 三次B样条插值拟合

B-spline三次B样条曲线方程相关推荐

  1. 三次B样条曲线拟合算法

    1 三次B样条曲线方程 B样条曲线分为近似拟合和插值拟合,所谓近似拟合就是不过特征点,而插值拟合就是通过特征点,但是插值拟合需要经过反算得到控制点再拟合出过特征点的B样条曲线方程.这里会一次介绍两种拟 ...

  2. boost::math模块实现将三次 b 样条插值器用于规则间隔的数据的测试程序

    boost::math模块实现将三次 b 样条插值器用于规则间隔的数据的测试程序 实现功能 C++实现代码 实现功能 boost::math模块实现将三次 b 样条插值器用于规则间隔的数据的测试程序 ...

  3. 问题六十一:三次b样条(b-spline)曲线的控制点和曲线形状的对应——以回旋体的“基本曲线”为例(2)

    前续"问题六十一:三次b样条(b-spline)曲线的控制点和曲线形状的对应--以回旋体的"基本曲线"为例" 之前是保持控制点BCDEF不变,只改变A的位置. ...

  4. 轨迹绕圈算法_基于三次B样条曲线拟合的智能车轨迹跟踪算法

    收稿日期:2017-10-30; 修回日期:2017-12-10; 录用日期:2017-12-19. 基金项目: 国家自然科学基金资助项目( 91420202,61372088) . 作者简介: 张永 ...

  5. excel三次样条函数_日常系列2:二次和三次函数样条、数据的插值

    本讲导读 本讲适合在讲授或学习完高中数学的基本初等函数章节.三角函数章节和导数章节后,作为数学建模材料,在日常教学中讲授或学习.本讲内容包括但不限于: 一次函数.二次函数.三次函数的统计和物理意义及三 ...

  6. 问题六十一:三次b样条(b-spline)曲线的控制点和曲线形状的对应——以回旋体的“基本曲线”为例

    "问题六十:怎么用ray tracing画回旋体(rotational sweeping / revolution)"中的"基本曲线"是由三次b-spline曲 ...

  7. Qt开发技术:QCharts(三)QCharts样条曲线图介绍、Demo以及代码详解

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/108022984 各位读者,知识无穷而人力有穷 ...

  8. 【Matlab】三次B样条基函数插值求解泛函极值问题

    --------------------------------------------------------------------------------------------- 前言:博主是 ...

  9. Mathematics English Vocabulary (Cited)

    一般词汇 数学 mathematics, maths(BrE), math(AmE) 公理 axiom 定理 theorem 计算 calculation 运算 operation 证明 prove ...

最新文章

  1. 二、JavaScript语言--JS基础--JavaScript进阶篇--DOM对象 控制HTML元素
  2. 【Linux】20.shell脚本 检测是否 ping 通
  3. iOS 关于集成融云IM的一些常用方法
  4. 第三十六期:如果把线程当作一个人来对待,所有问题都瞬间明白了
  5. (24)FPGA减法器设计(第5天)
  6. mysql数据库的服务无法启动,mysql服务无法启动,服务没有报告任何错误
  7. 白板机器学习笔记 P9-P12线性回归
  8. 【转】memcache-client-forjava
  9. 这打车App麻烦了!遭黑客勒索巨额比特币
  10. RGB图像转到HSI图像
  11. 管理感悟:知行合一与内化
  12. linux工作技能第二发:vi
  13. 一些压力测试结果(Mysql,Zookeeper,Redis,Mongodb)
  14. python 下载文件 限速-突破xx云盘的限速,利用python实现加速下载
  15. 5、自写<VBA函数>关于字体与单元格颜色、大小的函数
  16. matlab根据数值大小聚类,[matlab聚类分析]请教高手:用matlab做聚类分析,节点数多于30个怎么画聚类图啊?...
  17. 海思16DV300 移动侦测
  18. 服务器接显示器重影,学生能够选择影音服务器中的考试试卷进行自测测试结束系统将自动批阅并显示标.doc...
  19. S-CMS企业建站系统
  20. Java POI实现pptpptx转换为pdf文件

热门文章

  1. 我的奇思妙想机器人消防员_我的奇思妙想未来的机器人作文600字
  2. Ros noetic opencv4.2.0 cv_bridge 冲突 适配Opencv3.2.0完成自己的USB_Camera 跑通 Orb_slam2
  3. 动态规划6:买卖股票 I II III IV 冷却,共5题
  4. 基于用户的协同过滤算法python实现
  5. 计算机网络位置网盘怎么登陆,百度网盘使用小技巧,超全超详细!新手必备
  6. 薄荷英语---《心理学》20180823
  7. springboot学生信息管理的设计与实现毕业设计源码191219
  8. 思迈特软件Smartbi完成C轮融资,推动国产BI加速进入智能化时代
  9. moon服务器 zerotier_初探:建立 zerotier 的 moon 服务器
  10. 计算机辅助设计高级绘图员技能鉴定试题,计算机辅助设计高级绘图员技能鉴定试卷.doc...