B-样条曲线:开曲线

B-spline Curves: Open Curves

上一页定义               回目录                        下一页 闭曲线


如以前提到过的,如果第一个和最后一个节点没有重复度 p+1,其中 p 是B-样条曲线的次数(degree),曲线将不会分别与第一个控制点和最后一个控制点的第一边和最后一边相切。 该曲线是开(open) B-样条曲线。在这种情况下,我们应关注一个额外的限制。在前页 我们展示了一个基函数的计算实例,使用节点向量U = { 0, 0.25, 0.5, 0.75, 1 }, 其中 m = 4,如果基函数是1次的  (即, p = 1), 那么有三个基函数N0,1(u), N1,1(u) 和 N2,1(u) 如下图所示。

因为该节点向量不是 clamped,第一个和最后一个节点区间(即,[0, 0.25) 和 [0.75, 1)) 只有一个非零基函数而第二和第三节点区间(即, [0.25, 0.5) 和 [0.5, 0.75)) 有两个非零基函数。回忆 B-样条基函数重要性质里的在一个节点区间[ui, ui+1)有至多p+1个p 次非零基函数。因此,在这个例子中,节点区间[0,0.25) 和 [0.75,1)没有基函数的“完全支持” ("full support")。一般来说,对次数p,区间 [u0, up) 和 [um-p, um] 不会有基函数的“完全支持”( "full support" ),当B-样条曲线是开曲线时被忽略。因此,我们有下列重要的注意事项:

对开(open)B-样条曲线,定义域是[up, um-p]

考虑一个由14个控制点(即,n = 13)定义的 6次 (即,p = 6) B-样条曲线。其节点的数目是 21 (即, m = n + p + 1 = 20)。如果节点向量是均匀的, 节点是0, 0.05, 0.10, 0.15, ..., 0.90, 0.95 和 1.0。 开(open)曲线定义在[up, un-p] = [u6, u14] = [0.3, 0.7]上且与第一边和最后一边不相切。下面左图显示了曲线而右图给出了B-样条基函数。

尽管在两端的节点区间没有被利用,B-样条曲线仍然是由所有控制点定义的。如在 B-样条基函数页所讨论的最多有p+1 个基函数Ni-p,p(u), Ni-p,p+1(u), ..., Ni,p(u) 在节点区间 [ui, ui+1)上非零。因此,在[up, ui+1)上有 p+1个非零函数: N0,p(u), N1,p(u), ..., Np,p(u)。这是一个“满”数( "full" count)。注意 N0,p(u) 在 [up, up+1) 有它的尾巴,因此,控制点P0 对开(open)B-样条曲线的贡献小于大多数其他控制点。一个相似的参数可用来证明 Pn 也包括在曲线的定义中。

让我们用一个实例来说明一个开曲线与clamped曲线之间的变化。 我们以一个由9个控制点(即, n = 8)和一个均匀节点向量{ 0, 1/13, 2/13, 3/13, ..., 12/13, 1 }定义的4次开B-样条曲线为开始。如果我们将第二个节点 1/13 改变到 0 使得0 为双重节点,图中黄色曲线。实际上,该曲线和0是简单节点的原始曲线几乎是一样的。现在,如果我们把第三个节点2/13改变到0使得0是重复度为3的节点,则结果是红色曲线。如果第四个节点 3/13 改变到0 (重复度 4),产生的曲线是蓝色的。如你所看到的,这三条开曲线彼此之间没有很大不同。现在,让我们把第五个节点4/13改变到0. 现在0是一个重复度5(即, p+1)的节点,曲线不仅通过第一个控制点而且与控制折线(ployline)(即,clamped)的第一边相切。如你从图中看到的,曲线的形状剧烈地变化,将它的一个端点移到第一个控制点。如果我们把最后5个节点移到1也会发生同样变化。

上一页定义               回目录                        下一页闭曲线

译注:

  1. 本文翻译是“B-样条曲线(B-spline Curves)教程”中的一部分,其余翻译部分见“B-样条曲线(B-spline Curves)教程目录”。
  2. “B-样条曲线(B-spline Curves)教程”是翻译自C.-K. Shene博士的CS3621 Introduction to Computing with Geometry Notes的第6部分“B-spline Curves”。
  3. 本文原文地址:B-spline Curves: Open Curves   。
  4. 本文首发“博士数学家园 ”

B-样条曲线:开曲线相关推荐

  1. C++编写任意次clampedB样条曲线(曲线分别与第一个控制点和最后一个控制点的第一边和最后一边相切)

    我们知道,B样条曲线根据其起始点与控制点的关系可分为:openB样条曲线,clampedB样条曲线,closedB样条曲线.OpenB样条曲线不会与第一个控制点和最后一个控制点的第一条边和最后一条边相 ...

  2. 计算几何03_三次参数样条曲线与Cardinal曲线

    一.三次参数样条曲线 三次样条曲线的唯一缺点就是缺乏几何不变形.即当型值点发生几何变换时不能保证参数递增.因此提出了以弦长为参数的三次参数样条曲线. 1.1 定义 已知n个型值点Pi(xi, yi), ...

  3. 咸鱼菌玩3D—样条曲线和贝塞尔曲线

    咸鱼菌玩3D-样条曲线和贝塞尔曲线 多线段 样条曲线 贝塞尔曲线 123D提供了 多段线和 样条曲线两种自由绘制工具,而后者比前者更加灵活自由,能够绘制更复杂的形状. 在设计领域中有一种被称作 贝塞尔 ...

  4. B样条曲线 及 B样条曲面

    B样条曲线 在保留Bézie优点的同时,克服了他的弱点:采用样条--分段连续多项式 例如,现在有n+1个点,在每两点之间构造一条多项式,则有n个小区间.每个小区间构造一条三次多项式,变成了n段的三次多 ...

  5. 课堂笔记_ B样条曲线和NUBRS

    为什么学习B样条 Bezier曲线/曲面不支持局部的修改和编辑: Bezier曲线/曲面拼接时,满足几何连续条件是十分困难的. B样条的历史 1946年,Schoenberg提出了一种基于样条的方法来 ...

  6. 计算机图形学 第五章 曲线与曲面(下)

    5.3 B 样条曲线与曲面 B 样条曲线方程的定义 Bezier曲线的不足:阶次较大时特征多边形对曲线的控制将会减弱:没有局部性.不能做局部修改:拼接较复杂 B 样条曲线方程: P ( t ) = ∑ ...

  7. Hermite曲线与Bezier曲线的关系

    结论 最近在研究3次样条曲线.曲线由四个控制点控制,依次记为P0,P1,P2,P3.在绘制Hermite曲线的时候,发现如果令P0处的导数为3倍P1-P0,P3处的导数为3倍P3-P2,则P0,P1, ...

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

    B-spline Curves: Definition 给定 n + 1个控制点P0, P1, ..., Pn 和一个节点向量U = { u0, u1, ..., um },  p 次B-样条曲线由这 ...

  9. B-Spline样条曲线及其性质

    目录 B-Spline 学习笔记(MOOC) [1] B样条产生的背景 1. Bezier曲线的不足 2. 克服不足的方法 3. 如何进行分段? [2] B样条的递推定义 1. B-Spline与Be ...

最新文章

  1. 自考总结-2019-4-14
  2. Android 去掉Activity的跳转动画
  3. 操作系统三: 地址空间与地址生成
  4. 垃圾回收机制和菜单栏工具栏
  5. Effective C++ 阅读笔记(一)透彻了解inline以及降低编译依存关系
  6. 机器学习06神经网络--学习
  7. linux中lvm的缩减
  8. php pm.status path,phpfpm开启pm.status_path配置,查看fpm状态参数
  9. kali linux 黑别人电脑,如何使用 Kali Linux 黑掉 Windows
  10. 织梦php 文章采集规则,如何正确写DedeCms采集规则
  11. 各个版本的IIS之间的区别 IIS1 ~ IIS6
  12. 【对讲机的那点事】公网对讲机的物联卡你了解吗?
  13. 24点游戏(C++)
  14. 64位计算机可以装32位的系统么,电脑是要装32位还是64位系统?
  15. c++ 实现QQ空间,腾讯微博,新浪微博微信,豆瓣等分享功能。
  16. Nginx if语句配置多重判断
  17. Sass 3 的环境搭建及开发
  18. pcie 驱动程序分析
  19. transformers的beam_search
  20. MinGW到底是个什么ghost

热门文章

  1. (私人收藏)2019WER积木教育机器人赛(普及赛)解决方案-(全套)采集深度学习样本
  2. 计算机网络带宽确定,一种计算机网络可用带宽测量方法
  3. 英特尔的指令集体系结构_新指令集将上线:Intel 新版指令集手册确认 Alder Lake 架构的存在...
  4. python正则匹配练习
  5. 怎么把文字转换成朗读,快来看这几款文字转语音朗读工具
  6. 微型计算机技术中 通过系统把CPU,【单选题】在微型计算机技术中,通过系统   把CPU、存储器、输入设备和输出设备连接起来,实现信息交换。...
  7. 最佳机器学习公共数据集
  8. PowerQuery的参数表格用法
  9. 英雄联盟7月23日维修服务器,lol维护到几点今天 英雄联盟7月23日停机维护多长时间...
  10. 服务器只读团体字信息,服务器团体名配置