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. windows server 2008 HPC Edtion激活教程

    KMS激活指南 本服务器根据俄罗斯KMS服务器VMWARE架设,不受时间限制 KMS激活支持的Windows版本:Windows 2008, Windows 2008 R2 全系列产品Vista, W ...

  2. hadoop-2.7.1:Error: Cannot find configuration directory: /etc/hadoop

    本文转载自:http://blog.csdn.net/huangshanchun/article/details/49533433 安装hadoop参考:http://blog.csdn.net/hi ...

  3. 利用spring的ApplicationListener监听某一类事件的发生

    1.ApplicationListener在使用过程中可以监听某一事件的发生,可以做出相应的处理,这个方式不常用,但是在特殊情况下面还是有用的. 2.导包pom.xml <project xml ...

  4. mongodb聚合 group

    MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*). 基本语法为:db.collection.agg ...

  5. django-控制mysql事物

    from django.db import transaction 两种方式控制事务:为了保持数据一致性 一个Book表,一个Author表.添加一本书,也要保证添加作者.By事物控制 book = ...

  6. Git----远程仓库之添加远程库02

    现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub上创建一个Git库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举 ...

  7. latex如何插入空白行

    1.~\\:一行空白2.\\[行距]:可加入任意间距的空白行 [xpt]

  8. Excel VBA入门(九)操作工作薄

    虽然我前面讲过,在VBA中操作工作薄并不是件明智的事,但有些时候,还是避免不了要这么做.绝大多数情况下,我们要做的是获取到某个工作薄对象,并以此来获得其中的工作表对象,然后再对工作表中的数据进行处理. ...

  9. Android APK反编译详解(转)

    转自:http://blog.csdn.net/ithomer/article/details/6727581 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代 ...

  10. docker1.9 network跨主机安装

    背景:在跨host中,如果docker任何一个重启或者销毁,docker暴露的端口以及ip将可能重新配置,这个时候需要重新记录ip跟端口.在生产环境中往往需要一个固定的ip以及端口去跟容器通信.例如m ...