B-spline Basis Functions: Computation Examples

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

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

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


1. 简单节点(Simple Knots )

  假设节点向量是U = { 0, 0.25, 0.5, 0.75, 1 }. 因此, m = 4 和u0 = 0, u1 = 0.25, u2 = 0.5, u3 = 0.75 及 u4 = 1。0次(degree)基函数很简单。 它们分别是定义在节点跨度 [0,0.25,), [0.25,0.5), [0.5,0.75) 和 [0.75,1)上的N0,0(u), N1,0(u), N2,0(u)和N3,0(u) ,如下图所示。

  

  下表给出了所有的Ni,1(u):

  

  接着展示这些基函数的图形。因为内节点0.25, 0.5和0.75都是简单的(即, k = 1) 且p = 1,有p - k + 1 = 1非零基函数和三个节点。 而且, N0,1(u), N1,1(u) 和 N2,1(u)在节点0.25, 0.5 和 0.75分别是C0 连续的。

  

  从Ni,1(u)可计算2次基函数。因此m = 4, p = 2, 和 m = n + p + 1,我们有n = 1所以只有两个2次基函数:N0,2(u)和 N1,2(u). 结果见下表:

  

  下图显示了两个基函数。三条垂直蓝线表示节点位置。注意每个基函数是三个2次曲线段的组合曲线。例如, N0,2(u) 是绿色曲线,其是定义在[0,0.25), [0.25, 0.5) 和 [0.5,0.75)上的三个抛物线的联合。这些曲线段连接在一起形成一个光滑的钟形。请验证 N0,2(u,) (resp., N1,2(u)) 在节点 0.25 和 0.5 (resp., 0.5 和 0.75)是 C1 连续的。如前页所提到的,在节点处,这个复合曲线是C1 连续的。

  

2. 带正重复度的节点

  如果一个节点向量包含有正重复度的节点,我们会遇到 0/0的情况,后面会遇到。因此我们定义 0/0 等于0。 幸运的是,这只用于手工计算的情况。对计算机实现,有个有效的算法,不受这个问题影响。如果ui 是重复度 k 的节点(即ui = ui+1 = ... = ui+k-1), 那么节点区间[ui,ui+1), [ui+1,ui+2), ..., [ui+k-2,ui+k-1) 不存在,结果是,Ni,0(u), Ni+1,0(u), ..., Ni+k-1,0(u) 都是零函数。

  考虑节点向量 U = { 0, 0, 0, 0.3, 0.5, 0.5, 0.6, 1, 1, 1 }. 因此,0 和1 是重复度3 (即, 0(3)和  1(3)) 而 0.5 是重复度2 (即, 0.5(2)). 结果是, m = 9而节点分配是

  

  现在计算 Ni,0(u)。 注意因为 m = 9 且 p = 0 ( 0 次基函数), 我们有n = m - p - 1 = 8。如下表所示,只有四个0次非零基函数: N2,0(u), N3,0(u), N5,0(u) 和 N6,0(u).

  

  然后,我们继续计算1次基函数。因为 p 为 1, n = m - p - 1 = 7. 下表显示了结果:

  

  下图显示了这些基函数的图形。

  

  让我们看一个特别的计算,比如N1,1(u). 。它使用下式计算的:

  

  将u1 = u2 = 0 和 u3 = 0.3 代入这个方程产生下式:

  

  因为 N1,0(u) 到处为零,第一项是0/0 因此被定义为零。因而,只有第二项对结果有影响。因为 N2,0(u) 在 [0,0.3)上是1, N1,1(u) 在 [0,0.3)上是1 - (10/3)u  。

  接着,让我们计算所有的Ni,2(u)。因为 p = 2, 我们有 n = m - p - 1 = 6。下表包含了所有的Ni,2(u):

  

  下图显示了所有2次基函数。

  

  让我们选一个典型的计算作为例子,如N3,2(u)。计算式是下式:

  

  代入 u3 = 0.3, u4 = u5 = 0.5 和 u6 = 0.6得到

  

  因为 N3,1(u) 在 [0.3, 0.5)上非零且等于5u - 1.5,(5u - 1.5)2N3,2(u) 在[0.3, 0.5)上的非零部分。因为N4,1(u) 在 [0.5, 0.6)上非零且等于6 - 10u, (6 - 10u)2N3,2(u) 在[0.5, 0.6)上的非零部分。

  让我们研究在节点0.5(2)处的连续问题。因为它的重复度是2 且这些基函数的次数是 2, 基函数 N3,2(u) 在0.5(2)处是C0 连续的。这就是为什么N3,2(u) 在0.5(2)处有个尖锐的角。对不在两个端点处的节点,例如 0.3,保持了 C1 连续性因为它们都是简单节点。

N3,0(u) ,如下图所示。

B-spline Curves 学习之B样条基函数计算实例(3)的更多相关文章

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

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

  2. B样条基函数(cubic spline basis)

    B样条基函数用作权重 reference http://blog.csdn.net/tuqu

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

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

  4. B样条基函数的定义和性质

    定义:令U={u0,u1,…,um}是一个单调不减的实数序列,即ui≤ui+1,i=0,1,…,m-1.其中,ui称为节点,U称为节点矢量,用Ni,p(u)表示第i个p次(p+1阶)B样条基函数,其定 ...

  5. B样条基函数的定义及系数的意义

    原文链接:http://blog.csdn.net/tuqu/article/details/5177405 贝塞尔基函数用作权重.B-样条基函数也一样:但更复杂.但是它有两条贝塞尔基函数所没有的特性 ...

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

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

  7. python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例

    python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...

  8. OGG学习笔记02-单向复制配置实例

    OGG学习笔记02-单向复制配置实例 实验环境: 源端:192.168.1.30,Oracle 10.2.0.5 单实例 目标端:192.168.1.31,Oracle 10.2.0.5 单实例 1. ...

  9. 学习MQ(三) 一个实例

    学习MQ(三) 一个实例. 现在有两台机器A和B,分别安装了MQ6.0,我要通过MQ进行A和B之间的双向通信. 我打算分两步,第一步:实现A到B的数据传输. 在A上: 1.创建队列管理器 QM_100 ...

随机推荐

  1. 安全关闭MySQL

    想要安全关闭 mysqld 服务进程,建议按照下面的步骤来进行: 0.用具有SUPER.ALL等最高权限的账号连接MySQL,最好是用 unix socket 方式连接: 1.在5.0及以上版本,设置 ...

  2. memcached内存管理机制分析

    memached是高性能分布式内存对象系统,通过在内存中存储数据对象来减少对磁盘的数据读取次数,提高服务速度. 从业务需求出发.我们通过一条命令(如set)将一条键值对(key,value)插入mem ...

  3. [html][easyui]DataGrid 绑定

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. Linux Expect 简介和使用实例

    expect简介和使用实例 1 expect 简介 expect 是用来进行自动化控制和测试的工具. 主要是和交互式软件telnet ftp passwd fsck rlogin ssh tip 等进 ...

  5. Python开发之用户密码存储

    在各种线上应用中,用户名密码是用户身份认证的关键,它的重要性不言而喻.一方面,作为保护用户敏感数据的钥匙来说,一旦被破解,系统将敞开大门完全不设防.另一方面,密码这把钥匙本身就是非常敏感的数据:大多数 ...

  6. 《OpenCL异构并行编程实战》补充笔记散点,第五至十二章

    ▶ 第五章,OpenCL 的并发与执行模型 ● 内存对象与上下文相关而不是与设备相关.设备在不同设备之间的移动如下,如果 kernel 在第二个设备上运行,那么在第一个设备上产生的任何数据结果在第二个 ...

  7. sql日志

    这个像线程输出一样,并不是顺序的,主要靠线程名称来看.比如我13线程执行了一条语句. 第一条:蓝字那条就是我执行的语句. 第二条:368,thread-13那条就是我的参数. 第三条:369,thre ...

  8. leetcode654

    class Solution { public: TreeNode* constructMaximumBinaryTree(vector<int>& nums) { ) retur ...

  9. FireMoneky 画图 Point 赋值

    VCL 的 Canvas.Pen 对应FMX: Canvas.Stroke;VCL到 Canvas.Brush 对应FMX: Canvas.Fill. TCircle 圆形控件 Inkscape 0. ...

  10. Filter的连接过程《转》

    原文地址:https://yq.aliyun.com/articles/48113 7.Filter的连接过程 DirectShow提供了多方法来连接Filter,如IFilterGraph::Con ...