B-spline Curves 学习之B样条曲线的导数(8)
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)的更多相关文章
- B-spline Curves 学习之B样条曲线性质(5)
B-spline Curves: Important Properties 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完成相关的翻译学习. ...
- B-spline Curves 学习之B样条曲线的移动控制点、修改节点分析(7)
B-spline Curves: Moving Control Points 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完成相关的翻译学习 ...
- B-spline Curves 学习之B样条曲线的系数计算与B样条曲线特例(6)
B-spline Curves: Computing the Coefficients 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完成相关 ...
- B-spline Curves 学习之B样条曲线定义(4)
B-spline Curves: Definition 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完成相关的翻译学习. (原来博客网址:h ...
- B-spline Curves 学习前言与动机(1)
B-spline Curves 学习之前言 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完成相关的翻译学习. (原来博客网址:http:// ...
- B-spline Curves 学习之B样条基函数的定义与性质(2)
B-spline Basis Functions 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完成相关的翻译学习. (原来博客网址:http ...
- B-spline Curves 学习之B样条基函数计算实例(3)
B-spline Basis Functions: Computation Examples 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完 ...
- Theano学习笔记(四)——导数
导数使用T.grad计算. 这里使用pp()打印梯度的符号表达式. 第3行输出是打印了经过优化器简化的符号梯度表达式,与第1个输出相比确实简单多了. fill((x** TensorConstant{ ...
- 吴恩达-coursera-机器学习-week1
一.引言(Introduction) 1.1 欢迎 1.2 机器学习是什么? 1.3 监督学习 1.4 无监督学习 二.单变量线性回归(Linear Regression with One Varia ...
随机推荐
- 设置vim颜色方案
获取所有vim颜色配置方案 ls /usr/share/vim/vim74/colors/ [root@lx ~]# ls /usr/share/vim/vim74/colors/ blue.vim ...
- C++ 类外定义
类内定义与内联函数 像下面这种函数名与函数体都写在类里面的函数形式被称作类内定义,编译器编译的时候会把它默认成内联函数. class Student { public: void setAge(int ...
- undefined和NAN的区别(转)
Javascript 中 null.NaN和undefined的区别 1.类型分析: js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始 ...
- 五.jQuery源码解析之jQuery.extend(),jQuery.fn.extend()
给jQuery做过扩展或者制作过jQuery插件的人这两个方法东西可能不陌生. jQuery.extend([deep],target,object1,,object2...[objectN]) jQ ...
- 通过PicturreId获取图片路径(Url)
1.直接使用接口服务 _pictureService.GetPictureUrl((int)entity.SponsorPictureId); //entity是具体查询出来的实体对象 Sponsor ...
- mysql 获取一段时间的数据
用 sql 获取一段时间内的数据: SELECT * FROM EDI.edi_history WHERE timestampdiff(day, SYSDATE(), create_time_loc) ...
- Linux Tomcat 7.0 管理员登录时"401 Unauthorized" 问题解决方法
http://blog.csdn.net/u010359532/article/details/36055291 tomcat 7.0没有默认值,需要在conf的tomcat-users.xml中设置 ...
- Media Queries 媒体查询
1.什么是媒体查询 媒体查询可以让我们根据设备显示器的特性(如视口宽度.屏幕比例.设备方向:横向或纵向)为其设定CSS样式,媒体查询由媒体类型和一个或多个检测媒体特性的条件表达式组成.媒体查询中可用于 ...
- 解决SQL将varchar值转换为数据类型为int的列时发生语法错误
今天遇到一个这样的错误,具体的报错情况如下 解决的方案如下. 数据库MSSQL在比较大小时,出错提示:“将 varchar 值 '24.5' 转换为数据类型为 int 的列时发生语法错!”分析数据库设 ...
- 【BZOJ4154】Generating Synergy【kd树】
题意 给定一棵以1为根的有根树,初始所有节点颜色为1,每次将距离节点a不超过l的a的子节点染成c,或询问点a的颜色 分析 我们以dfs序为横坐标,深度为纵坐标,建kd树.我们每次更新,都是在kd树中更 ...