前言

如果你对这篇文章可感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。

文章目录

  • 前言
    • 第七章 曲线曲面 - 1
      • 7.1 几何造型简史
      • 7.2 参数曲线基本概念
        • 7.2.1 曲线和曲面的三种表示方法
        • 7.2.2 参数曲线的基本概念
      • 7.3 Bezier曲线与曲面
        • 7.3.1 Bezier曲线的背景和定义
        • 7.3.2 Bernstein基函数的性质
        • 7.3.3 Bezier曲线的性质

第七章 曲线曲面 - 1

7.1 几何造型简史

  • 几何造型技术 —— 表达物体模型形状的技术

  • 三类三维模型

    • 线框模型 —— 顶点和棱边来表示物体

    • 曲面模型 (最常用) —— 描述物体表面和表面的连接关系,不描述物体内部的点的属性

    • 实体模型 —— 不但有物体的外观而且也有物体内点的描述

7.2 参数曲线基本概念

7.2.1 曲线和曲面的三种表示方法
  • 非参数表示

    • 显式表示

      ​ y=f(x)y = f(x)y=f(x), 一个 xxx 值对应一个 yyy 值。因此显式方程不能表示封闭或多值曲线。

    • 隐式表示

      ​ f(x,y)=0f(x,y)=0f(x,y)=0, 易于判断一个点是否在曲线上。

    • 显式或隐式表示存在的问题

      ​ 与坐标轴相关、隐函数表示不直观、作图不方便、显函数表示存在多值性、会出现斜率为无穷大的情形

  • 参数表示

    • 特性

      ​ ① 用 ttt 表示参数,平面曲线 p(t)=[x(t),y(t)]p(t)=[x(t),y(t)]p(t)=[x(t),y(t)],空间曲线 p(t)=[x(t),y(t),z(t)]p(t)=[x(t),y(t),z(t)]p(t)=[x(t),y(t),z(t)]

      ​ ② 等价于笛卡尔分量表示,p(t)=x(t)∗i+y(t)∗j+z(t)∗kp(t)=x(t)*i+y(t)*j+z(t)*kp(t)=x(t)∗i+y(t)∗j+z(t)∗k

    • 区间规范化

      ​ ① 假设曲线段对应的参数区间为 [a,b][a,b][a,b],即 a≤t≤ba \leq t \leq ba≤t≤b 。为了方便计算,可以将区间 [a,b][a,b][a,b] 规范化为 [0,1][0,1][0,1],参数变换为 t′=t−ab−at^{'} = \frac{t-a}{b-a}t′=b−at−a​,p=p(t),t∈[0,1]p=p(t), \ t\in [0,1]p=p(t), t∈[0,1]。

      ​ ② 该形式把曲线上表示一个点的位置矢量的各个分量合写在一起当成一个整体,考虑的是曲线上的点之间的相对位置关系而不是它们与所取坐标系之间的相对位置关系。

      ​ ③ 可以把曲面表示成为双参数 u 和 v 的矢量函数,p(u,v)=p(x(u,v),y(u,v),z(u,v))p(u,v)=p(x(u,v),y(u,v),z(u,v))p(u,v)=p(x(u,v),y(u,v),z(u,v)) (u,v)∈[0,1]∗[0,1](u,v)\in [0,1]*[0,1](u,v)∈[0,1]∗[0,1] 。

    • 参数方程的优势

      ​ ① 可以满足几何不变性的要求 —— 表示的形状不随所取坐标系而改变

      ​ ② 有更大的自由度来控制曲线曲面的形状

      ​ ③ 直接对参数方程进行几何变换 —— 非参数方程的几何变换必须对图形上每个型值点进行几何变换,而参数表示的几何变换可对其参数方程直接进行变换

      ​ ④ 便于处理斜率为无穷大的情形,不会因此而中断计算

      ​ ⑤ 界定曲线曲面的范围十分简单 —— 具有规格化的参数变量 t∈[0,1]t\in [0,1]t∈[0,1]

      ​ ⑥ 易于用向量和矩阵运算,简化计算

7.2.2 参数曲线的基本概念
  • 基本数学形式

  • 位置矢量

曲线上任一点的位置矢量可表示为:$p(t)=[x(t),y(t),z(t)] $

  • 切矢量

  • 曲率

切向量求导,求导以后还是一个向量,称为曲率,其几何意义是曲线的单位切向量对弧长的转动率,即刻画这一点曲线的弯曲程度。

  • 法矢量

  • 挠率

刻画空间曲线的扭曲程度。空间曲线的扭曲程度等价于密切平面的法矢量 (即曲线的副法矢量) 关于弧长的变化率。

  • 插值

    ​ 自由曲线和自由曲面一般通过少数分散的点生成,这些点叫做"型值点"、“样本点"或"控制点”。

    ​ 给定一组有序的数据点 Pi(i=0,1,2,…,n)P_i(i=0,1,2,…,n)Pi​(i=0,1,2,…,n) ,要求构造一条曲线顺序通过这些数据点,称为对这些数据点进行插值,所构造的曲线称为插值曲线。

    ​ 构造插值曲线曲面所采用的数学方法称为曲线曲面插值法。

    • 线性插值

      假设给定函数 f(x)f(x)f(x) 在两个不同点 x1x_1x1​ 和 x2x_2x2​ 的值,用一个线性函数:y=ax+by=ax+by=ax+b,近似代替,称为线性插值函数。

    • 抛物线插值

      已知三个点的坐标,要求构造一个抛物线函数。ϕ(x)=ax2+bx+c\phi(x)=ax^2+bx+cϕ(x)=ax2+bx+c

  • 拟合

构造一条曲线使之在某种意义下最接近给定的数据点 (但未必通过这些点),所构造的曲线为拟合曲线。

逼近通常指用一些性质较好的函数近似表示一些性质不好的函数。因此插值和拟合都可以视为逼近。

  • 光顺

指曲线的拐点不能太多 (有一、二阶导数等)。[拐点 —— 凸曲线和凹曲线的连接点]

对平面曲线而言,相对光顺的条件是:a. 具有二阶几何连续性 (G2G^2G2)

​ b. 不存在多余拐点和奇异点

​ c. 曲率变化较小

  • 连续性

    • 参数连续性

      • 0阶参数连续性

      ​ 记为C0C^0C0连续性,是指曲线的几何位置连接,即第一个曲线段在ti1t_{i1}ti1​处的xxx、yyy、zzz值与第二个曲线段在t(i+1)0t_{(i+1)0}t(i+1)0​处的xxx、yyy、zzz值相等。

      • 1阶参数连续性

      ​ 记为C1C^1C1连续性,指代表两个相邻曲线段的方程在相交点处有相同的一阶导数(切线)

      • 2阶参数连续性

      ​ 记为C2C^2C2连续性,指两个相邻曲线段的方程在相交点处具有相同的一阶和二阶导数。C2C^2C2连续性即交点处的切向量变化率相等,即切线从一个曲线段平滑地变化到另一个曲线段。二阶连续性对电影中的动画途径和很多精密 CAD\text{CAD}CAD 需求有用。

    • 几何连续性

      • 0阶几何连续性

      ​ 记为G0G^0G0连续性。与0阶参数连续性的定义相同,满足pi(ti1)=p(i+1)(t(i+1)0)p_i(t_{i1})=p_{(i+1)}(t_{(i+1)0})pi​(ti1​)=p(i+1)​(t(i+1)0​)

      • 1阶几何连续性

      ​ 记为G1G^1G1连续性。若要求在结合处达到G1G^1G1连续,就是说两条曲线在结合处在满足G0G^0G0连续的条件下,并有公共的切矢。即切矢量方向一致。

      • 2阶几何连续性

      ​ 记为G2G^2G2连续性。就是说两条曲线在满足G1G^1G1连续的条件下,并有公共的曲率,即方向相同。

  • 参数化

    • 均匀参数化

      • 节点在参数轴上呈等距分布。如0、1/10、2/10…
    • 累加弦长参数化 (根据长度的比例关系来确定 t)

      • 这种参数法如实反映了型值点按弦长的分布情况,能够克服型值点按弦长分布不均匀的情况下采用均匀参数化所出现的问题。
    • 向心参数化法

      • 向心参数化法假设在一段曲线弧上的向心力与曲线切矢从该弧段始端至末端的转角成正比,加上一些简化假设,得到向心参数化法。此法尤其适用于非均匀型值点分布。
  • 参数曲线的代数和几何形式

    • 代数形式

    • 几何形式

      • 几何形式是利用一条曲线端点的几何性质来刻画一条曲线。端点的几何性质,就是指曲线的端点位置、切向量、各阶导数等端点的信息。

      • 对三次参数曲线,若用其端点位矢P(0)P(0)P(0)、P(1)P(1)P(1)和切矢P′(0)P^{'}(0)P′(0)、P′(1)P^{'}(1)P′(1)描述。需要这四个量来刻画三次参数曲线。

7.3 Bezier曲线与曲面

7.3.1 Bezier曲线的背景和定义
  • Bezier曲线的背景

    • 用曲线段拟合曲线f(x)f(x)f(x)时,可以把曲线表示为许多小线段ϕ(x)\phi(x)ϕ(x)之和,其中ϕ(x)\phi(x)ϕ(x)称为基(混合)函数。f(x)=∑i=0nai∗ϕi(x)f(x)=\sum\limits_{i=0}^{n}a_i*\phi_{i}(x)f(x)=i=0∑n​ai​∗ϕi​(x) 。

    • 这些基函数是要用于计算和显示的。因此,经常选择多项式作为基函数。ϕ(x)=anxn+an−1xn−1+…+a1x+a0\phi(x)=a_nx^n+a_{n-1}x^{n-1}+…+a_1x+a_0ϕ(x)=an​xn+an−1​xn−1+…+a1​x+a0​ 。

    • 1962年,Bezier构造了一种以逼近为基础的参数曲线和曲面的设计方法。该方法基点是在进行汽车外形设计时,先用折线段勾画出汽车的大致外形轮廓,然后用光滑的参数曲线去逼近这个折线多边形。这个折线多边形被称为特征多边形,逼近该特征多边形的曲线被称为Bezier曲线。

  • Bezier曲线的定义

    • 针对Bezier曲线,给定空间 n+1 个点的位置矢量Pi(i=0,1,2…,n)P_i(i=0,1,2…,n)Pi​(i=0,1,2…,n),则Bezier曲线段的参数方程表示如下:(00=1,0!=10^0=1, 0!=100=1,0!=1)

    • PiP_iPi​代表空间的很多点,t在0到1之间,把t代进去可以算出一个数 —— 即平面或空间一个点。随着t值的变化,点也在变化。当t从0变到1时,就得到空间的一个图形,这个图形就是Bezier曲线。

    • 一次Bezier曲线

      • B0,1(t)=(1−t),B1,1(t)=t,p(t)=(1−t)P0+tP1B_{0,1}(t)=(1-t),\ B_{1,1}(t)=t,\ p(t)=(1-t)P_0+tP_1B0,1​(t)=(1−t), B1,1​(t)=t, p(t)=(1−t)P0​+tP1​,即连接起点P0P_0P0​和终点P1P_1P1​的直线段。

    • 二次Bezier曲线

      • B0,2(t)=(1−t)2,B1,2(t)=2t(1−t),B2,2(t)=t2,p(t)=(P2−2P1+P0)t2+2(P1−P0)t+P0B_{0,2}(t)=(1-t)^2,\ B_{1,2}(t)=2t(1-t),\ B_{2,2}(t)=t^2,\ p(t)=(P_2-2P_1+P_0)t^2+2(P_1-P_0)t+P_0B0,2​(t)=(1−t)2, B1,2​(t)=2t(1−t), B2,2​(t)=t2, p(t)=(P2​−2P1​+P0​)t2+2(P1​−P0​)t+P0​
    • 三次Bezier曲线

      • 三次Bezier曲线由4个控制点生成,这时n=3,有4个控制点p0p_0p0​、p1p_1p1​、p2p_2p2​、p3p_3p3​,Bezier多项式是三次多项式。

      • 图中每个基函数在参数 ttt 的整个 (0,1)(0,1)(0,1) 的开区间范围内不为 000。Bezier曲线不可能对曲线形状进行局部控制,如果改变任一控制点位置,整个曲线会受到影响。

7.3.2 Bernstein基函数的性质
  • 正性 (非负性)

    • Bi,n(t)={=0t=0,1>0t∈(0,1),i=1,2,…,n−1;B_{i,n}(t)= \left\{\begin{aligned}& = 0 \ \ \ t=0,1 \\& > 0 \ \ \ t\in (0,1),i=1,2,…,n-1;\\\end{aligned}\right.Bi,n​(t)={​=0   t=0,1>0   t∈(0,1),i=1,2,…,n−1;​
  • 权性

    • 基函数有n+1项,n+1个基函数的和加起来正好等于1。∑i=0nBi,n(t)=1,t∈(0,1)。\sum\limits_{i=0}^{n}B_{i,n}(t)=1,t\in(0,1)。i=0∑n​Bi,n​(t)=1,t∈(0,1)。
  • 端点性质

  • 对称性

    • 保持 nnn 次Bezier曲线控制多边形的顶点位置不变,而把次序颠倒过来,则此时曲线仍不变,只不过曲线的走向相反。
  • 递推性

    • Bi,n(t)=(1−t)Bi,n−1(t)+tBi−1,n−1(t)B_{i,n}(t)=(1-t)B_{i,n-1}(t)+tB_{i-1,n-1}(t)Bi,n​(t)=(1−t)Bi,n−1​(t)+tBi−1,n−1​(t)
    • Cni=Cn−1i+Cn−1i−1C_n^i=C_{n-1}^i+C_{n-1}^{i-1}Cni​=Cn−1i​+Cn−1i−1​
  • 导函数

    • Bi,n′(t)=n[Bi−1,n−1(t)−Bi,n−1(t)],i=0,1,…,nB^{'}_{i,n}(t)=n[B_{i-1,n-1}(t)-B_{i,n-1}(t)],\ \ i=0,1,…,nBi,n′​(t)=n[Bi−1,n−1​(t)−Bi,n−1​(t)],  i=0,1,…,n
  • 最大值

    • Bi,n(t)B_{i,n}(t)Bi,n​(t)在t=int=\frac{i}{n}t=ni​处达到最大值
  • 积分

    • ∫01Bi,n(t)dt=1n+1\int_0^1 B_{i,n}(t)dt=\frac{1}{n+1}∫01​Bi,n​(t)dt=n+11​
  • 降阶公式

    • Bi,n(u)=(1−u)Bi,n−1(u)+uBi−1,n−1(u)B_{i,n}(u)=(1-u)B_{i,n-1}(u)+uB_{i-1,n-1}(u)Bi,n​(u)=(1−u)Bi,n−1​(u)+uBi−1,n−1​(u)
  • 升阶公式

    • Bi,n(n)=i+1n+1Bi+1,n+1(t)+n+1−in+1Bi,n+1(t)B_{i,n}(n)=\frac{i+1}{n+1}B_{i+1,n+1}(t)+\frac{n+1-i}{n+1}B_{i,n+1}(t)Bi,n​(n)=n+1i+1​Bi+1,n+1​(t)+n+1n+1−i​Bi,n+1​(t)
7.3.3 Bezier曲线的性质
  • 端点性质

    • 顶点 p0p_0p0​ 和 pnp_npn​ 分别位于实际曲线段的起点和终点上。
  • 一阶导数

    • p′(t)=n∑i=1n(pi−pi−1)Bi−1,n−1(t)p^{'}(t)=n\sum\limits_{i=1}^{n}(p_i-p_{i-1})B_{i-1,n-1}(t)p′(t)=ni=1∑n​(pi​−pi−1​)Bi−1,n−1​(t)
    • p′(0)=n(p1−p0),p′(1)=n(pn−pn−1)p^{'}(0)=n(p_1-p_0), \ p^{'}(1)=n(p_n-p_{n-1})p′(0)=n(p1​−p0​), p′(1)=n(pn​−pn−1​)
    • 证明Bezier曲线的起点和终点处的切线方向和特征多边形的第一条边及最后一条边的走向一致
  • 几何不变性

    • 指某些几何特性不随坐标变换而变化的特性。Bezier曲线的形状仅与控制多边形各顶点的相对位置有关,而与坐标系的选择无关。
  • 变差缩减性

    • 若Bezier曲线的特征多边形是一个平面图形,则平面内任意直线与 p(t)p(t)p(t) 的交点个数不多于该直线与其特征多边形的交点个数。这一性质叫变差缩减性质。
    • 此性质反映了Bezier曲线比其特征多边形的波动还小,也就是说Bezier曲线比特征多边形的折线更光顺。

计算机图形学完整笔记(七):曲线曲面 - 1相关推荐

  1. 计算机图形学完整笔记(九):真实感图形学

    前言 如果你对这篇文章可感兴趣,可以点击「[访客必读 - 指引页]一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接. 文章目录 前言 第九章 真实感图形学 9.1 真实感图形学概述 9.2 ...

  2. 计算机图形学完整笔记(一):图形学概论

    前言 如果你对这篇文章可感兴趣,可以点击「[访客必读 - 指引页]一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接. 文章目录 前言 第一章 计算机图形学概论 1.1 全书概述 1.2 计算 ...

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

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

  4. 计算机图形学完整笔记(十):绘制技术

    前言 如果你对这篇文章可感兴趣,可以点击「[访客必读 - 指引页]一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接. 文章目录 前言 第十章 绘制技术 10.1 基于图像的绘制技术IBR 1 ...

  5. 计算机图形学 学习笔记(十一):曲线曲面(三):B样条 曲线与曲面

    接上文 计算机图形学 学习笔记(十):曲线曲面(二):Bezier 曲线与曲面 8.4 B样条曲线产生背景及定义 B样条产生的背景 Bezier 曲线曲面有很多优点,比如说可以用鼠标拖动控制顶点以改变 ...

  6. 计算机图形学 学习笔记(九):曲线曲面(一):参数曲线、参数几何代数形式

    接上文 计算机图形学 学习笔记(八):三维图形变换:三维几何变换,投影变换(平行/ 透视 投影) 计算机图形学三大块内容:光栅图形显示(前面已经介绍完了 1-8).几何造型技术.真实感图形显示.光栅图 ...

  7. 计算机图形学作业( 七):利用 OpenGL 绘制 Bezier 贝塞尔曲线

    计算机图形学作业( 七):利用 OpenGL 绘制 Bezier 贝塞尔曲线 Bezier 曲线原理 OpenGL 实现思路 捕获鼠标点击时的坐标 根据顶点画出连续的线段 根据顶点画出 Bezier ...

  8. 计算机图形学 学习笔记(七):二维图形变换:平移,比例,旋转,坐标变换等

    接上文 计算机图形学 学习笔记(六):消隐算法:Z-buffer,区间扫描线,Warnock,光栅图形学小结 在图形学中,有两大基本工具:向量分析,图形变换.本文将重点讲解向量和二维图形的变换. 5. ...

  9. 现代计算机图形学入门ppt,计算机图形学完整课件.ppt

    计算机图形学完整课件.ppt (326页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 计算机图形学 第一章.绪论第二章.基本图形生成原理第 ...

  10. GAMES101-现代计算机图形学学习笔记(作业07)

    GAMES101-现代计算机图形学学习笔记(作业07) Assignment 07 GAMES101-现代计算机图形学学习笔记(作业07) 作业 作业描述 思路 结果 原课程视频链接以及官网 b站视频 ...

最新文章

  1. ORB特征提取策略对ORB-SLAM2性能的影响
  2. C# 利用反射调用类下的方法
  3. python requests 示例_python的requests模块实现登陆示例
  4. 最全面详细讲解Oracle入门
  5. charat越界返回什么_Java基本语法方法修饰符返回类型参数列表异常列表
  6. Oracle收购Sun
  7. BlackBerry Key2 键盘扩展
  8. Hadoop1.0.4单节点StandAlone及Pseudo-Distributed部署方法
  9. CodeForces 589J Cleaner Robot
  10. mxnet入门--第5篇
  11. luoguP1991无线通讯网
  12. Spring的 Junit 单元测试
  13. 射频下变频器在航空航天和国防领域的应用 ——扩展传统RF监控解决方案的实用方法
  14. 阿里巴巴-飞猪 电话面试
  15. python tif转jpg_怎样把TIF转化为JPG图片格式
  16. 51单片机读取引脚值原理
  17. 两张图片切换比例虚拟进度条
  18. 2020 Bioinformatics | GraphDTA: predicting drug target binding affinity with graph neural networks
  19. Android地图定位-百度地图上定位自己所在的位置
  20. MongoDB3.4 根据中文拼音给中文排序

热门文章

  1. 四、ip classless与默认路由
  2. windows server2003的邮箱服务器安装详细步骤
  3. 前端-----文本类标签汇总
  4. habernet备份mysql_harbor 安装
  5. 联发科技嵌入式_MTK深圳公司嵌入式软件工程师笔试题(含部分答案)
  6. python中文件打开的合法模式组合_python中各种文件打开模式
  7. 1078 Hashing (25 分) 解决冲突采用正向增加的二次探查法
  8. linux怎么读取kvaser的数据,基于Python下的Kavasers CAN报文收发调试
  9. ppt地图分布图一块一块的怎么做_没想到PPT还能这样做动态地图,实在是太炫酷了,用了再也离不开...
  10. Python(七):输入输出(IO)、文件读写