Derivatives of a B-spline Curve

 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完成相关的翻译学习。

 (原来博客网址:http://blog.csdn.net/tuqu/article/details/4749586)

 原来的博主翻译还是很好的,所以前几章节直接借鉴参考原博主的内容。


  尽管B-样条曲线比贝塞尔曲线复杂得多,它们的导数很相似。假设一个B-样条曲线定义如下:

  

  每个基函数的导数可计算如下:

  

  将这些导数代回曲线方程得到下列结果:

  

  其中 Qi定义如下:

  

  因此,一个B-样条曲线的导数是另一个p - 1次B-样条曲线,在原来的节点向量上,而有新的n 个控制点Q0, Q1, ..., Qn-1

  如果原始的clamped节点向量是u0(p+1), up+1, ..., um-p-1, um(p+1),那么移动第一个和最后一个节点使得第一个和最后一个节点重复度变成, p 而不是p+1,我们有一个m - 1 个节点u0(p), up+1, ..., um-p-1, um(p)的新节点序列。那么,可证明在原来节点序列计算的Ni+1,p-1(u) 等于在新节点序列上的Ni,p-1(u)。因此,在新节点序列上的一个B-样条曲线的导数如下:

  

  下面左图是一个5次的B-样条曲线。它的导数曲线,其是一个由新 n 个控制点定义的 p-1次B-样条曲线,显示在中图。如同贝塞尔曲线的情况,这是一个原始曲线的矢端曲线(hodograph)。下面右图显示的是控制折线删除后的矢端曲线(hodograph)。

      

  Clamped B-样条曲线

  

  我们知道一个clamped B-样条曲线经过第一个和最后一个控制点。实际上,它也与控制折线的第一边和最后一边相切。回忆上面的p 次B-样条曲线C(u)的导数是

  

  其节点向量通过将第一个节点和最后一个节点从原始节点序列去掉获得。因此,第一个(和最后一个)节点的重复度是p,因此,上面的 p-1次B-样条曲线是clamped。因为一个clamped B-样条曲线经过它的第一个和最后一个控制点,我们有C'(0) = Q0 和 C'(1) = Qn-1。 因为,对i = 0有 u0 = .... = up = 0 ,所以我们有

  

  因此,在C'(0)上的切向量与从P0 到 P1 的向量有相同的方向,而 C(u) 与第一边相切。基于同样的推理,我们有下列结果:

   

 因此,C(u) 与最后一边相切。总之,我们有下列重要事实:

  

  更高阶导数 

  因为一个B-样条曲线的一阶导数是另一个B-样条曲线,所以可以毫无困难地递归应用该技术来计算更高阶导数。

B-spline Curves 学习之B样条曲线的导数(8)的更多相关文章

  1. B-spline Curves 学习之B样条曲线性质(5)

    B-spline Curves: Important Properties 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完成相关的翻译学习. ...

  2. B-spline Curves 学习之B样条曲线的移动控制点、修改节点分析(7)

    B-spline Curves: Moving Control Points 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完成相关的翻译学习 ...

  3. B-spline Curves 学习之B样条曲线的系数计算与B样条曲线特例(6)

    B-spline Curves: Computing the Coefficients 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完成相关 ...

  4. B-spline Curves 学习之B样条曲线定义(4)

    B-spline Curves: Definition 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完成相关的翻译学习. (原来博客网址:h ...

  5. B-spline Curves 学习前言与动机(1)

    B-spline Curves 学习之前言 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完成相关的翻译学习. (原来博客网址:http:// ...

  6. B-spline Curves 学习之B样条基函数的定义与性质(2)

    B-spline Basis Functions 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完成相关的翻译学习. (原来博客网址:http ...

  7. B-spline Curves 学习之B样条基函数计算实例(3)

    B-spline Basis Functions: Computation Examples 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完 ...

  8. Theano学习笔记(四)——导数

    导数使用T.grad计算. 这里使用pp()打印梯度的符号表达式. 第3行输出是打印了经过优化器简化的符号梯度表达式,与第1个输出相比确实简单多了. fill((x** TensorConstant{ ...

  9. 吴恩达-coursera-机器学习-week1

    一.引言(Introduction) 1.1 欢迎 1.2 机器学习是什么? 1.3 监督学习 1.4 无监督学习 二.单变量线性回归(Linear Regression with One Varia ...

随机推荐

  1. mysql索引优化续

    (1)索引类型: Btree索引:抽象的可以理解为“排好序的”快速查找结构myisam,innodb中默认使用Btree索引 hash索引:hash索引计算速度非常的快,但数据是随机放置的,无法对范围 ...

  2. 黄聪:sqlserver 2008修改数据库表的时候错误提示“阻止保存要求重新创建表的更改”

    当用户在在SQL Server 2008企业管理器中更改表结构时,必须要先删除原来的表, 然后重新创建新表,才能完成表的更改,如果强行更改会出现以下提示:不允许保存更改 .您所做的更改要求删除并重新创 ...

  3. [转][ASP.NET]ASP.NET 预编译网站

    [转自]https://msdn.microsoft.com/zh-cn/library/ms227430(v=vs.80).aspx C:\Windows\Microsoft.NET\Framewo ...

  4. Hive组件以及执行过程

    对Hive的基本组成进行了总结: 1.组件: 元存储(Metastore )-存储“系统目录以及关于表.列.分区等的元数据”的组件.驱动(Driver )- 控制 HiveQL 生命周期的组件,当 H ...

  5. html页面转换成pdf

    一般页面都是.jsp页面,所以要把.jsp转换成html,在生成pdf,在网上找了好多方法,只有用一个插件,wkhtmltopdf-0.8.3.exe,生成的pdf会相对的好看. 先附上我做的.jsp ...

  6. 寒武纪-1005 Travel(树形DP)

    一.题目链接 http://aiiage.hustoj.com/problem.php?id=1005 二.题面 PDF:http://aiiage.hustoj.com/upload/file/20 ...

  7. 6_bootstrap之导航条|轮播图|排版|表单元素|分页

    8.导航条 BootStrap已经提供了完整的导航条实例,通常情况下,我们仅需进行简单修改即可使用. 帮助手册位置:组件-------导航条 9.轮播图 BootStrap已经提供了完整的轮播图实例, ...

  8. uwsgi的使用

    uwsgi是一个WEB服务器,只要用于python部分,类似于nginx ,apache 1 使用pip命令安装 pip install uwsgi 安装成功以后 可以做一个简单的测试 2 新建一个t ...

  9. 设置VMWARE通过桥接方式使用主机无线网卡上网(转载)

    其它人的评论:好文,使用bridged最简单;桥接也可选择自定义的虚拟网络-->VMnet1,这样可以让虚机的IP于主机不同,与VMnet1相同.将主机的的网络访问共享给VMnet1(这个法子没 ...

  10. Vue cli 脚手架使用

    1:基本的安装 安装node 安装npm Windows 更改环境变量 重启 环境变量生效 安装vue-cli 安装webpack 2:项目构建 https://segmentfault.com/a/ ...