文章目录

  • 【XJTUSE计算机图形学】第三章 几何造型技术(3)——B样条曲线与曲面
    • B样条曲线与曲面
      • B样条的递推定义与性质
        • 基本概念
        • 定义
        • de Boor-Cox递推定义
        • 特殊观察
        • 性质
        • B样条曲线类型的划分
      • B样条曲线的性质
        • 局部性
        • 开曲线定义域
        • 凸包性
        • 贝塞尔曲线是B样条曲线的特例
        • 分段参数多项式
        • 连续性
        • 导数公式
        • 变差缩减性
        • 仿射不变性
        • 几何不变性
        • 直线保持性
        • 习题
      • De Door算法(了解)
      • 三次B样条的Bezier表示(了解)
      • 节点插入算法
      • B样条曲线的优点
      • B样条曲面

【XJTUSE计算机图形学】第三章 几何造型技术(3)——B样条曲线与曲面

B样条曲线与曲面

Bezier曲线缺陷:

缺乏灵活性:一旦确定了多边形的顶点数,就确定了曲线的阶数;

控制性差:当顶点数较多,曲线的阶次将比较高,此时,特征多边形对曲线形状的控制将明显减弱;

不易修改:由曲线的方程可看出,其Bernstein基函数的值在开区间(0,1)内不为零。因此,所定义之曲线(0<t<1)在区间内的任何一点均要受到全部顶点的影响,这使得对曲线进行局部修改成为不可能。

B样条曲线:为克服Bezier曲线的缺陷,Gordon等人拓展了Bezier曲线,从外形设计的需求出发,希望新曲线易于进行局部修改、更逼近特征多边形、低阶次曲线

于是,用k阶B样条基函数替换了Bernstein基函数,构成了称之为B样条曲线的新型曲线。

B样条的递推定义与性质

基本概念

半开区间[ti,ti+1][t_i,t_{i+1}][ti​,ti+1​] 是第i+1个节点区间;

集合T称为节点矢量

重节点:如果一个节点ti出现r次 (即ti=ti+1=...=tt+r−1,r>1t_i=t_{i+1}=...=t_{t+r-1},r>1ti​=ti+1​=...=tt+r−1​,r>1),ti 是重复度为r的多重节点

定义

Pi(i=0,1,...,n)P_i(i=0,1,...,n)Pi​(i=0,1,...,n)是控制多边形的顶点

Ni,k(t)(i=0,1,...,n)N_{i,k}(t)(i=0,1,...,n)Ni,k​(t)(i=0,1,...,n)称为k阶(k-1次)B样条基函数

多种基函数的定义:

de Boor-Cox递推定义

ik阶(基函数度数)B-样条基函数Ni,k(t)N_{i,k}(t)Ni,k​(t)

约定00=0\frac{0}{0}=000​=0

通常称为de Boor-Cox递归公式;

如果次数为零(k= 1),这些基函数都是阶梯函数。

特殊观察

1️⃣ 基函数Ni,k(t)N_{i,k}(t)Ni,k​(t)在[ti,ti+k)[t_i,t_{i+k})[ti​,ti+k​)上非零;

2️⃣ 在任何一个节点区间[ti,ti+1)[t_i,t_{i+ 1})[ti​,ti+1​), 最多有k个(k-1)次基函数非零:Ni−k+1,k(t),Ni−k+2,k(t),...,Ni,k(t)N_{i-k+1,k}(t),N_{i-k+2,k}(t),...,N_{i,k}(t)Ni−k+1,k​(t),Ni−k+2,k​(t),...,Ni,k​(t)

性质

Ni,k(t)N_{i,k}(t)Ni,k​(t)是t的k阶多项式

1️⃣ 局部支撑性:Ni,k(t)N_{i,k}(t)Ni,k​(t)是在[ti,ti+k)[t_i,t_{i+k})[ti​,ti+k​)上的非零多项式

2️⃣ 权性(单位分解 )

3️⃣ 微分公式

4️⃣ 非负性:对所有的i,kt, Ni,k(t)N_{i,k}(t)Ni,k​(t)是非负的

5️⃣ 重要结论

基函数Ni,k(t)N_{i,k}(t)Ni,k​(t)是(k-1)次多项式的复合曲线,连接点在[ti,ti+k)[t_i,t_{i+k})[ti​,ti+k​)上的节点处;

在重复度r的节点处,基函数Ni,k(t)N_{i,k}(t)Ni,k​(t)是Ck−r−1C^{k-r-1}Ck−r−1连续的;

如果节点数目是(m+1),函数的阶数是k,控制点的个数是(n+1),则m=(n+k),即节点数等于控制点数+阶数

❓ 五个控制顶点的三次B样条曲线由几个节点构成

5+4=9

注意阶数=次数+1

B样条曲线类型的划分

两个标准:首末节点是否重合和节点的分布情况。

1️⃣ 首末节点是否重合

开曲线:曲线不会与控制折线的第一边和最后一边接触;图1

闭曲线:第1个节点和最后1个节点是重复节点。

–Clamped:第一个节点和最后一个节点必须是重复度为k ;图2

–Closed:重复某些节点和控制点。图3

2️⃣ 节点的分布情况

假定控制多边形的顶点为Pi(i=0,1,...n)P_i(i=0,1,...n)Pi​(i=0,1,...n),阶数为k(次数为k-1),则节点矢量为T=[t0,t1,...,tn+k]T=[t_0,t_1,...,t_{n+k}]T=[t0​,t1​,...,tn+k​]

均匀样条曲线

节点矢量中节点为沿参数轴均匀或等距分布,所有节点区间长度为常数。这样的节点矢量定义了均匀的B样条基

节点矢量为[0, 1/8, 2/8, 3/8, 4/8, 5/8, 6/8, 7/8, 1]

准均匀样条曲线

两端点的重复度为k,内部其它节点呈均匀分布,且重复度为1。

端点过特征多边形的端点

节点矢量为[0, 0, 0, 0,1/3,2/3, 1,1, 1, 1]

分段Bezier曲线

节点矢量中两端节点具有重复度k,所有内节点重复度为k-1,这样的节点矢量定义了分段的Bernstein基。

图中有7个控制顶点,n=6,阶数为4,因此节点数为6+4+1=11,节点矢量为T=[t0,t1,...,t10]=[0,0,0,0,0.5,0.5,0.5,1,1,1,1]T=[t_0,t_1,...,t_{10}]=[0,0,0,0,0.5,0.5,0.5,1,1,1,1]T=[t0​,t1​,...,t10​]=[0,0,0,0,0.5,0.5,0.5,1,1,1,1]

一般的非均匀B样条曲线

B样条曲线的性质

局部性

1️⃣ k阶B样条曲线上参数为t∈[ti,ti+1]t\in [t_i,t_{i+1}]t∈[ti​,ti+1​]的一点至多与k个控制顶点Pj(j=i−k+1,...i)P_j(j=i-k+1,...i)Pj​(j=i−k+1,...i)有关,与其它控制顶点无关;

2️⃣ PiP_iPi​只影响在区间[ti,ti+k)[t_i,t_{i+k})[ti​,ti+k​)上的曲线P(t);

基函数Ni,k(t)N_{i,k}(t)Ni,k​(t)在[ti,ti+k)[t_i,t_{i+k})[ti​,ti+k​)上非零;

3️⃣ 基函数Ni,k(t)N_{i,k}(t)Ni,k​(t)在区间[ti,ti+k)[t_i,t_{i+k})[ti​,ti+k​)上都是次数不高于(k-1)的多项式。

❓ 改变一条以P0,P1,…,P9为控制顶点的4阶B样条曲线的一个顶点P5,有几段曲线的形状会改变?

P5影响在区间[t5,t9)∈[t3,t10][t5,t9)\in[t3,t10][t5,t9)∈[t3,t10]上的曲线,影响了4段曲线[t5,t6)、[t6,t7)、[t7,t8)、[t8,t9)

注意看定义域,可能有陷阱

开曲线定义域

k个基函数的支持,定义域是[tk−1,tn+1][t_{k-1},t_{n+1}][tk−1​,tn+1​](k-1是次数,n+1是控制顶点数)

举例

使用节点向量T={0,0.25,0.5,0.75,1},如果基函数是2阶的(即k=2),那么有三个基函数N0,2(t),N1,2(t)和N2,2(t);

第一个和最后一个节点区间只有一个非零基函数,而第二和第三节点区间(即[0.25,0.5)和[0.5,0.75))有两个非零基函数。

节点区间[0,0.25)和[0.75,1)没有基函数的“完全支持”。

一般来说,区间[t0,tk−1)[t_0,t_{k-1})[t0​,tk−1​)和[tn+1,un+k][t_{n+1},u_{n+k}][tn+1​,un+k​]不会有基函数的“完全支持”,当B样条曲线是开曲线时被忽略。

凸包性

贝塞尔曲线是B样条曲线的特例

分段参数多项式

P(t)在每一区间上都是次数不高于k-1的参数t的多项式,因此P(t)是参数t的次数不高于k-1的分段多项式。

连续性

导数公式

变差缩减性

仿射不变性

即在仿射变换下,P(t)的表达式具有形式不变性。

如果一个仿射变换应用于B样条曲线,得到的结果可以从它的控制点的仿射像构建得到。

几何不变性

由于定义式所表示的B样条曲线是参数形式,因此,B样条曲线的形状和位置与坐标系选择无关。

直线保持性

控制多边形退化为一条直线时曲线也退化为一条直线

习题

1️⃣ 五个控制顶点的三次B样条曲线由几个节点构成

5+4=9

2️⃣ 一条以P0,P1,P2,P3,P4为控制顶点的4阶(三次)B样条曲线,其节点向量为{0,0,0,1,2,3,4,4, 4},则其定义域为?

3️⃣ 由五个控制顶点所决定的3次B样条曲线,由几段3次B样条曲线段光滑连接而成?

定义域是[t3,t5][t3,t5][t3,t5],有两段连接

4️⃣ 改变一条以P0,P1,…,P9为控制顶点的4阶B样条曲线的一个顶点P5,有几段曲线的形状会改变?

P5影响在区间[t5,t9)∈[t3,t10][t5,t9)\in[t3,t10][t5,t9)∈[t3,t10]上的曲线,影响了4段曲线[t5,t6)、[t6,t7)、[t7,t8)、[t8,t9)

De Door算法(了解)

de Boor 算法的递推关系如图

三次B样条的Bezier表示(了解)

节点插入算法

进一步改善B样条曲线的局部性质,提高曲线的形状控制的灵活性,可实现对曲线的分割等

给定一条k阶B样条曲线$P(t)=\underset{i=0}{\overset{n}{\sum}}P_i N_{i,k}(t) ,B样条基由节点矢量,B样条基由节点矢量,B样条基由节点矢量T={[t_0,t_1,…,t_{n+k}]}$完全决定

插入一个节点

在定义域某个节点区间[ti,ti+1][t_i,t_{i+1}][ti​,ti+1​]内插入一个节点t,得到新的节点矢量:T1=[t0,t1,...,ti,t,ti+1,...,tn+k]T^1={[t_0,t_1,...,t_i,t,t_{i+1},...,t_{n+k}]}T1=[t0​,t1​,...,ti​,t,ti+1​,...,tn+k​]

重新编号成为:T1=[t01,t11,...,ti1,ti+11,ti+21,...,tn+k+11]T^1={[t_0^1,t_1^1,...,t_i^1,t_{i+1}^1,t_{i+2}^1,...,t_{n+k+1}^1]}T1=[t01​,t11​,...,ti1​,ti+11​,ti+21​,...,tn+k+11​]

新节点矢量T1决定了一组新B样条基Ni,k1(t),i=0,1,...,n+1N_{i,k}^1(t),i=0,1,...,n+1Ni,k1​(t),i=0,1,...,n+1。原始的曲线可用这组新的B样条基与未知新顶点 Pi1P_i^1Pi1​表示

未知新顶点的计算公式(Boehm)

算法过程

B样条曲线的优点

优点:

可以是贝塞尔曲线;满足贝塞尔曲线有的所有重要性质;提供了比贝塞尔曲线更灵活的控制

曲线的次数与控制点数目是分开的,可使用更低次曲线而仍然保持很多控制点;

可以改变一个控制点位置而不会全局地改变整个曲线形状;

还有其他设计和编辑形状的技术比如改变节点。

B样条曲线仍然是多项式曲线,而多项式曲线不能表示许多有用的简单的曲线比如圆和椭圆

B样条曲面

【XJTUSE计算机图形学】第三章 几何造型技术(3)——B样条曲线与曲面相关推荐

  1. 【XJTUSE计算机图形学】第三章 几何造型技术(2)——Bezier 曲线与曲面

    文章目录 [XJTUSE计算机图形学]第三章 几何造型技术(2)--Bezier 曲线与曲面 Bezier 曲线与曲面 Bezier 曲线的定义与性质 定义 习题 Bernstein基函数性质 Bez ...

  2. 计算机图形学 第三章 几何造型

    文章目录 1 基本几何元素 2 基本图形模型 2.1 线框模型 2.2 表面模型 2.3 实体模型 3 典型建模方法 3.1 边界表示法和翼边结构 3.2 体素构造法(CSG法) 4 网格模型 5 三 ...

  3. 【XJTUSE计算机图形学】第三章 几何造型技术(1)——参数曲线和曲面

    文章目录 [XJTUSE计算机图形学]第三章 几何造型技术(1)--参数曲线和曲面 参数曲线和曲面 曲线曲面参数表示 非参数表示 参数表示 曲线的基本概念 插值.拟合和光顺(掌握概念) 参数化 概念 ...

  4. 【XJTUSE计算机图形学】第一章 绪论

    禁止转载 文章目录 [XJTUSE计算机图形学]第一章 绪论 1.1 研究内容 1.图形系统的主要任务 2.计算机图形学的研究对象 3.图形的要素[填空题] 4.图形图像表示法 5.图形研究例子 6. ...

  5. 第三章 计算机图形处理,计算机图形学第三章-1(Basic).ppt

    <计算机图形学第三章-1(Basic).ppt>由会员分享,可在线阅读,更多相关<计算机图形学第三章-1(Basic).ppt(28页珍藏版)>请在人人文库网上搜索. 1.清华 ...

  6. 【XJTUSE计算机图形学】第二章 光栅图形学(1)

    文章目录 [XJTUSE计算机图形学]第二章 光栅图形学(1) 1.基本概念 2.直线段的扫描转换算法 数值微分(DDA)法 增量算法 中点画线法[重点] Bresenham算法[重点 很有可能会考] ...

  7. 计算机图形学 第六章 曲线曲面建模技术

    文章目录 1 参数方程 2 参数曲线的一般形式 3 张量积形式的参数曲面 4 连续性的定义 参数连续性Ck 5 插值.逼近和拟合 6 Bernstein多项式 7 Bezier曲线及曲面,构造方法和性 ...

  8. 计算机图形学三维变换论文,计算机图形学 第5章 三维图形生成和变换技术

    计算机图形学 第5章 三维图形生成和变换技术 (63页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 第五章 目录第五章 三维图形生成和变 ...

  9. 计算机图形学 第四章 光栅图形学

    第四章 光栅图形学 计算机图形学 第四章 光栅图形学的相关内容,包括:直线段的扫描转换算法.圆弧的扫描转换算法.多边形区域填充.字符的生成.裁剪.反走样 等 Def 光栅显示器:一个像素矩阵(因此,要 ...

  10. 计算机图形学中几何变换的定义,计算机图形学-第5章-几何变换课件

    <计算机图形学-第5章-几何变换课件>由会员分享,可在线阅读,更多相关<计算机图形学-第5章-几何变换课件(70页珍藏版)>请在人人文库网上搜索. 1.计算机图形学-第5章-几 ...

最新文章

  1. C#Dictionary通过索引查找key和value,非循环方法查询
  2. CreateProcess启动游戏注入DLL
  3. 《智能家居》培训第六天------2019-01-10
  4. windows服务编写原理(上)
  5. leetcode127. Word Ladder
  6. swift学习之元组
  7. 前端js获取本项目的项目根地址
  8. 8b 10b c语言编码,2012年计算机等级二级C语言章节习题及答案(10)
  9. 在电子表格计算架构上应用稀疏数组技术的设计
  10. MySQL 数据库管理之 --- SQL 语言进阶二
  11. 010指北方位惯导系统的力学编排之平台的指令角速度
  12. java图片转pdf_java使用itextpdf将图片转换成pdf的简单实例 | 学步园
  13. android仿微信图片选择预览裁剪,仿微信图片选择
  14. 哪些企业可以做知识产权贯标,你不得不了解的事!
  15. 史上最快最新最全倾斜摄影(ContextCapture)空三/建模、单机/集群硬件配置方案2018
  16. manjaro折腾手记
  17. 【技巧】ApiPost生成word格式的接口文档,接口文档合并操作
  18. java数学建模,什么是数学建模- -
  19. Python_pymysql
  20. 【ElasticSearch系列】ES简介及安装

热门文章

  1. 【一起入门DeepLearning】中科院深度学习第五课:正则化「Regularization」和优化「Optimization」
  2. linux磁盘阵列 启动盘,Linux RAID磁盘列阵完全攻略
  3. 数据保护/磁盘列阵RAID保护 IP段103.103.188.xxx
  4. Android ViewPager 自定义翻页动画
  5. 用户评分系统设计与实现(风控方向)
  6. 打印26个大写字母和26个小写字母
  7. 电子产品销售数据分析及RFM用户价值分析
  8. 专业测试-自评抑郁量表SDS_悟sphenic_新浪博客
  9. Appbase基础框架
  10. 计算机mac地址和另一台一样,电脑mac地址有多个怎么办