前两篇中讲解了贝塞尔曲线和B样条基础。

FrancisZhao:曲线篇: 贝塞尔曲线​zhuanlan.zhihu.com

FrancisZhao:曲线篇:深刻理解B 样条曲线(上)​zhuanlan.zhihu.com

本文讲一下B样条的进阶

clamped B样条

由于我们常用的B样条是clamped B样条,我们就直接以其为例。

一个由n + 1 控制点和一个节点向量U = { u0, u1, ...., um } 定义的 p次B-样条曲线C(u),其中前p+1个和最后 p+1个节点是 "clamped" (即,u0 = u1 = ... = upum-p = um-p+1 = ... = um).

比如 3次clampedB样条,节点向量可以为[0 0 0 0 0.3 0.6 0.9 1 1 1 1].

在下图中,其中n = 10, m = 14 和p = 3, 头四个节点和最后四个节点是clamped而中间7个节点上均匀分布的。有8个节点区间,每个对应于一个曲线段。在下面左图,这些节点点以三角形标示。

节点区间[0 0 0 0 1/8 2/8 3/8 4/8 5/8 6/8 7/8 1 1 1 1].

方形为控制点,三角形为节点
为同样控制点的贝塞尔曲线,与上图对比
分别为7次5次3次B样条曲线

以上几组中, 体现了clamped B样条的关键两个特性,1 曲线的端点经过头尾的控制点 2 曲线的首位切线方向和分别与第一第二,倒数第一第二的控制点组成的直线方向相同。

那么为什么clamped B样条会会有这种特性呢?

如果你不能回答这个问题, 那么实际上就没有理解B样条的性质.

这 要回到B样条基函数计算的的本身

假设仅仅有7个节点

假设我们仅仅有7个节点, 如果 u0=u1=0, u2不为0, 那么区间[u0 u1)就是[0 0 ), 这个区间是不存在的, 所以基函数N0,0就是为0.

这个在上图中的意思, 当有6个控制点的时候, B样条是0阶曲线, 那么N0,0是0, 所以控制点P0根本就没有用上, 因为系数一直是0.

假设u0=u1=u2=0, u3不为0. 那么对于0阶b样条来说, N0,0 N1,0,都为0, 控制点P0 P1都没有用上. 对于1阶B样条, N0,1为0, 所以第一个控制点P0也是没有用上.对于2阶B样条, N0,2,不为0了, 因为是N2,0不为0. 所以N0,2 仅仅由N1,1决定, N1,1仅仅由N2,0决定.

再回头看B样条的基函数公式, u趋近于0的时候N0,2的系数是趋近于1的, 因此必然经过P0点.

因此也可以清楚,如果我认为B样条的局部是具有贝塞尔的性质,那么最大的区别就是基函数的作用范围,贝塞尔的所有基函数都是作用在整个区间,但是B样条有着明确的作用范围,这个性质导致了B样条没有必然通过控制点端点的性质。

B样条的导数:

先讲clamped B样条

既然B样条是贝塞尔曲线的扩展,那么必然要继承贝塞尔曲线一些优良的性质。贝塞尔曲线的导数还是贝塞尔, B样条的导数还是B样条。

接下来看推导公式:

B样条公式
基函数求导
基函数求导为低一阶的基函数求导
最终的基函数求导

因此,可知,B样条的导数还是B样条, 依然保留B样条的优良特性。

控制点减1,阶数减1,那么节点数目必然是减2. 对于clamped B样条,只要是去除第一个和最后一个节点就ok了,因此clamped B样条的求导还是clamped B样条,这个性质使其方便计算,应用广泛。

移动控制点

强凸包性质,如果u位于 [ui,ui+1),那么 C(u) 位于由控制点Pi, Pi-1, ..., Pi-p+1, Pi-p定义的凸包内。

可以理解为B样条为分区间的贝塞尔曲线,因此必然满足贝塞尔的凸包性质。

如果在 [ui,ui+1)区间,Pi, Pi-1, ..., Pi-p+1, Pi-p都在同一直线上,那么这一段B样条必然也在这个直线上。

ok,如果你已经掌握了这些知识,那么恭喜你,已经入门了。

专栏里每一篇都是我一个字一个字打的,都是我认为的原创干货。
欢迎指正讨论,转载请注明,认同请点赞。
这个系列的文章很容易出错,希望大佬们多多指正补充。
仅仅收藏是学不会的,还得点赞喜欢加转发啊。

FrancisZhao:专栏文章列表以及一些说明​zhuanlan.zhihu.com

本文的主要参考资料:

搜索结果提示 - 博客园找找看
CS3621 Introduction to Computing with Geometry Course Notes
B-样条曲线教程(B-spline Curves Notes)目录

曲线均匀分布_曲线篇:深刻理解B 样条曲线(下)相关推荐

  1. lisp 任意点 曲线距离_数学篇|看完这篇,秒杀所有圆锥曲线小技巧

    今天为大家带来的是小袁老师为大家总结的圆锥曲线题目的解题技巧,有例题有讲解! 善用几何性质 圆锥曲线的几何性质可以说是基础中的基础,它以及它引申出的焦点三角形面积公式在题目中也是被广泛地用到. 首先我 ...

  2. python 曲线平滑_曲线平滑(smoothing)

    曲线平滑 Savitzky-Golay滤波器 It uses least squares to regress a small window of your data onto a polynomia ...

  3. 编写脚本电脑怎么编写界面_在任何无法理解的情况下,请编写脚本

    编写脚本电脑怎么编写界面 脚本编写是使您的应用程序在运行时就可根据客户需求进行调整的最流行的方法之一. 与往常一样,此方法不仅带来好处,例如,在灵活性和可管理性之间存在众所周知的折衷方案. 本文不是从 ...

  4. 服务器负载不高 响应慢_一篇读懂分布式架构下的负载均衡

    weChat公众号:IT一刻钟.大型现实非严肃主义现场,一刻钟与你分享优质技术架构与见闻,做一个有剧情的程序员.关注可第一时间了解更多精彩内容.问题或建议,请公众号留言. 什么是负载均衡? 百度词条里 ...

  5. python态密度曲线绘制_使用Multiwfn绘制态密度(DOS)图考察电子结构

    使用Multiwfn绘制态密度(DOS)图考察电子结构 文/Sobereva@北京科音 First release: 2019-May-14  Last update: 2020-Nov-17 0 前 ...

  6. 怎么让图标曲线平滑_【摄影小贴士】摄影师的“手术刀”:后期曲线工具

    如果说直方图是摄影师的"X光片",那么曲线工具一定是摄影师的"手术刀"了. 曲线作为重要的影调和色彩调整工具,不仅存在于Photoshop中,在ACR,Ligh ...

  7. 曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线

    曲线 曲线,听起来很简单,看起来也很直观,但是如果我们看一下维基百科上关于曲线的定义: 设 I=[a,b]为一实数区间,即实数集的非空子集,那么曲线c 就是一个连续函数c : I → X 的映像,其中 ...

  8. auc计算公式_图解机器学习的准确率、精准率、召回率、F1、ROC曲线、AUC曲线

    机器学习模型需要有量化的评估指标来评估哪些模型的效果更好. 本文将用通俗易懂的方式讲解分类问题的混淆矩阵和各种评估指标的计算公式.将要给大家介绍的评估指标有:准确率.精准率.召回率.F1.ROC曲线. ...

  9. 计算机图形学曲线生成原理,计算机图形学_曲线及生成.ppt

    计算机图形学_曲线及生成 华中理工大学计算机学院 陆枫 99-7 1999年7月 7.2.1 曲线的表示要求 1)唯一性 2)几何不变性 3)易于定界 4)统一性 5)易于实现光滑连接 6)几何直观 ...

最新文章

  1. 万字长文带你全面认识 Kubernetes 中如何实现蓝绿部署、金丝雀发布和滚动更新...
  2. 计算机基础办公应用考试试题,计算机基础考试试题库和答案.doc
  3. Linux驱动技术(三) _DMA编程
  4. 【Java】6.5 抽象类
  5. 光伏发电对系统冲击大 “十三五”电力规划重点增强调峰能力
  6. leetcode 474. Ones and Zeroes | 474. 一和零(双约束背包问题)
  7. matlab中quat2angle,RPY_Euler_Quaternion_AngleAxis角度转化:Matlab、Python、Halc
  8. springsession分布式登录被覆盖_拉勾 分布式 学习小结
  9. SecureCRT 6.7.0.153 汉化绿色版
  10. c语言第二章网上作业答案,c语言第二章课后习题答案
  11. C语言:计算1*2*3*....*100,即求100!。
  12. gdi win7奔溃_gdiplus.dll 32/64位
  13. 一帮一 分数 15作者 陈越单位 浙江大学
  14. 欢迎大家关注公众号【音视频开发训练营】
  15. 计算机的应用给我们带来了,电脑能给我们的生活带来哪些便利
  16. 如何将eps/wind数据库里的数据变为stata要求的面板数据以及报错处理\改变数据类型(recast)
  17. Android Weekly #31:你最能影响「他者」的,是你正在工作的状态
  18. shell 数组介绍
  19. scum无法启动此程序以为计算机丢失,人渣SCUM电脑卡顿怎么办?人渣SCUM低配电脑设置方法介绍...
  20. 【竞品分析】小睡眠APP和蜗牛睡眠APP,基于用户体验5要素的分析框架

热门文章

  1. Android官方开发文档Training系列课程中文版:创建自定义View之View的优化
  2. 《程序员修炼之道:从小工到专家》阅读笔记03
  3. 第七章 二叉搜索树(b3)BST:删除
  4. mui.init方法配置
  5. 超出内容用省略号替代
  6. mybatis大于小于的转义
  7. android 自定义 radiobutton 文字颜色随选中状态而改变
  8. 使用IOUtils和FileUtils
  9. linux-03-Vim使用+账号用户管理
  10. linux基础知识——IPC之管道