B-spline Curves 学习之B样条基函数计算实例(3)
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)2 是N3,2(u) 在[0.3, 0.5)上的非零部分。因为N4,1(u) 在 [0.5, 0.6)上非零且等于6 - 10u, (6 - 10u)2 是 N3,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)的更多相关文章
- B-spline Curves 学习之B样条基函数的定义与性质(2)
B-spline Basis Functions 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完成相关的翻译学习. (原来博客网址:http ...
- B样条基函数(cubic spline basis)
B样条基函数用作权重 reference http://blog.csdn.net/tuqu
- B-spline Curves 学习之B样条曲线定义(4)
B-spline Curves: Definition 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完成相关的翻译学习. (原来博客网址:h ...
- B样条基函数的定义和性质
定义:令U={u0,u1,…,um}是一个单调不减的实数序列,即ui≤ui+1,i=0,1,…,m-1.其中,ui称为节点,U称为节点矢量,用Ni,p(u)表示第i个p次(p+1阶)B样条基函数,其定 ...
- B样条基函数的定义及系数的意义
原文链接:http://blog.csdn.net/tuqu/article/details/5177405 贝塞尔基函数用作权重.B-样条基函数也一样:但更复杂.但是它有两条贝塞尔基函数所没有的特性 ...
- B-spline Curves 学习前言与动机(1)
B-spline Curves 学习之前言 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完成相关的翻译学习. (原来博客网址:http:// ...
- python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例
python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...
- OGG学习笔记02-单向复制配置实例
OGG学习笔记02-单向复制配置实例 实验环境: 源端:192.168.1.30,Oracle 10.2.0.5 单实例 目标端:192.168.1.31,Oracle 10.2.0.5 单实例 1. ...
- 学习MQ(三) 一个实例
学习MQ(三) 一个实例. 现在有两台机器A和B,分别安装了MQ6.0,我要通过MQ进行A和B之间的双向通信. 我打算分两步,第一步:实现A到B的数据传输. 在A上: 1.创建队列管理器 QM_100 ...
随机推荐
- laravel中生成支付宝 二维码 扫码支付
文档教程模拟: http://www.023xs.cn/Article/37/laravel5%E9%9B%86%E6%88%90%E6%94%AF%E4%BB%98%E5%AE%9Dalipay%E ...
- jmeter 目录内容分布
/bin 目录(常用文件介绍) examples:目录下包含Jmeter使用实例 ApacheJMeter.jar:JMeter源码包 jmeter.bat:windows下启动文件 jmeter.s ...
- php error_log记录日志的使用方法和配置 (日志目录一定要手动创建)
对于PHP开发者来 说,一旦某个产品投入使用,应该立即将 display_errors选项关闭,以免因为这些错误所透露的路径.数据库连接.数据表等信息而遭到黑客攻击.但是,任何一个产品在投入使用后,都 ...
- Putty使用密钥登陆SSH
平时工作学习必须要使用Windows,在SSH远程连接软件里Putty算是用得比较顺手的,而且很小巧. 但是每次输入密码很麻烦,还容易输错,OpenSSH可以利用密钥来自动登陆,如此一来方便了不少.配 ...
- SQL 基础命令和函数
[数据操作] SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 [数据定义] C ...
- 记录一些sql,怕忘了
SELECT business_line,count(*) FROM zc_db.t_bug group by business_line; 这个是展示的,显示某一项一共有多少个xxx,注意是grou ...
- sonar link 的安装与使用
参考来源:https://jingyan.baidu.com/article/2a1383289bea98074a134ff6.html 工具/原料 版本要求Eclipse(4.2,3.8)以上, ...
- [X264] MinGW编译x264,VC中调用libx264.dll-------------<参考转>
1. 下载并按照MinGW,最好就缺省按照 http://sourceforge.net/projects/ ... ler/mingw-get-inst/ 把C:\MinGW\bin添加 ...
- 【331】python 下载文件:wget / urllib
参考:python下载文件的三种方法(去掉-) 方法一:wget import wget, os # 设置下载路径 os.chdir(r"D:/tmp") url="ht ...
- js练习 原型
//var a = { // fun: function a() { // test = 0; // alert(this) ...