1 / 36

计算机图形学 曲线曲面

计算机图形学 曲线曲面. 曲线曲面概述 参数曲线基础 曲线构造方法 三次参数曲线. 目录. 曲线曲面概述. 图形学中一个很复杂的又非常重要的研究领域。 曲线曲面才是造型的真正统治者,它占据了我们生活和幻想中的造型的绝大部分。 但曲线曲面又是如此地难以理解,让人们在一段很长很长的时间内无法征服它。 自由曲线和曲面 规则的曲线和曲面,比如:圆和球,可以用固定的函数表达式来构造,但是他的造型能力有限,我们这儿不讨论。 自由曲线和曲面是指那些形状比较复杂、不能用初等解析函数直接表示出来的曲线和曲面。

Download Presentation

计算机图形学 曲线曲面

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 计算机图形学曲线曲面

  2. 曲线曲面概述 参数曲线基础 曲线构造方法 三次参数曲线 目录

  3. 曲线曲面概述 • 图形学中一个很复杂的又非常重要的研究领域。 • 曲线曲面才是造型的真正统治者,它占据了我们生活和幻想中的造型的绝大部分。 • 但曲线曲面又是如此地难以理解,让人们在一段很长很长的时间内无法征服它。 • 自由曲线和曲面 • 规则的曲线和曲面,比如:圆和球,可以用固定的函数表达式来构造,但是他的造型能力有限,我们这儿不讨论。 • 自由曲线和曲面是指那些形状比较复杂、不能用初等解析函数直接表示出来的曲线和曲面。 • 它的应用极为广泛,在动画领域上举足轻重,在造型工业设计上更是独占鳌头。汽车车身、飞机机翼和轮船船体等的曲线和曲面均属于这一类。

  4. 曲线曲面概述 • 自由曲线和曲面发展过程 • 自由曲线曲面的最早是出现在工作车间,为了获得特殊的曲线,人们用一根富有弹性的细木条或塑料条(叫做样条),用压铁在几个特殊的点(控制点)压住样条,样条通过这几个点并且承受压力后就变形为一条曲线。人们调整不断调整控制点,使样条达到符合设计要求的形状,则沿样条绘制曲线。 • 1963年,美国波音,Ferguson提出使用参数三次方程来构造曲面 • 1964~1967年,美国MIT,Coons用封闭曲线的四条边界来定义曲面 • 1971年,法国雷诺汽车,Bezier提出用控制多边形来定义曲线和曲面 • 1974年,美国通用汽车,Cordon和Riesenfeld, Forrest, B样条曲线曲面 • 1975年,美国Syracuse大学,Versprille有理B样条 • 80年代,Piegl和Tiller, 非均匀有理B样条,NURBS方法

  5. 曲线曲面概述 • 对于曲线曲面设计方法的要求: • 几何意义直观,设计不必考虑其数学表达 • 形状易于预控制和修改,修改其中一点,不影响全局,只有在很小范围内的形状受到影响 • 几何不变性,对在不同测量坐标系测得的同一组数据点进行拟合,用同样的数学方法得到的拟合曲线形状不变。 • 易于定界,寻找边界 • 易于实现光滑连接 • 统一的数学表示,便于建立统一的数据库

  6. 曲线曲面概述 参数曲线基础 曲线构造方法 三次参数曲线 Beizer曲线 B样条曲线 目录

  7. 参数曲线基础 • 显式、隐式和参数表示 • 曲线和曲面都有参数表示和非参数表示之分 • 在非参数中又分为显式和隐式表示 • 显式表示:每个x值对应一个y值 • 比如:一条直线y=ax+b,一条平面曲线y=f(x)。可以想象,显式表示不便于表示圆(1个x有2个y),更不便于表示封闭的曲线和曲面 • 隐式表示:区别于显式,一般形式为f(x,y)=0 • 比如:ax2+bxy+cy2+dx+ey+f=0;这是一个圆锥曲线,可以调整a,b,c,d,e,f来得到不同的圆锥曲线 • 显式和隐式的局限性: • 值变化都与坐标轴有关,不便于计算和编程,不便于表示3维甚至更高维空间,会出现斜率为无穷大的情形(如垂线)等等。

  8. 参数曲线基础 若t的区间:[a,b],如果把它转换为[0,1] ,规格化如何做?t’=(t-a)/(b-a) , 则 t’  [0,1] • 显式、隐式和参数表示 • 以曲线上每一点坐标都表示为一个参数形式 如果用u表示参数,二维空间自由曲线的参数方程可以记为:x﹦x(u),y﹦y(u) u[0,1] 二维空间曲线上一点的参数表示为:P(u)﹦[x(u),y(u)] 三维空间自由曲线的参数方程表示为: x﹦x(u),y﹦y(u),z﹦z(u);u[0,1] 曲线上一点的参数表示为:P(u)﹦[x(u),y(u),z(u)] 同样,如果用u,w表示参数,二维空间自由曲面的参数方程表示为: x﹦x(u,w),y﹦y(u,w) u,w[0,1] 曲面上一点的参数表示为:P(u,w)﹦[x(u,w),y(u,w)] 三维空间自由曲面的参数方程表示为: x﹦x(u,w),y﹦y(u,w),z﹦z(u,w);u,w[0,1] 曲面上一点的参数表示为:P(u,w)﹦[x(u,w),y(u,w),z(u,w)]。 由于我们没有必要去研究u从负无穷到正无穷的整个参数空间,所以我们常常把参数规格化,即参数区间通常为[0,1]

  9. 圆的参数方程 参数曲线基础 • 显式、隐式和参数表示 • 我们来看看最简单的过2点的直线参数方程表示,如下 • 把p1[1,2],p2[4,3]带入方程得p(t)=[1,2]+[3,1]t,t [0,1] • 用参数表示的x,y分量为:x(t)=x1+(x2-x1)t=1+3t, y(t)=y1+(y2-y1)t=2+t • P’(t)表示切向量=[x’[t] y’[t]]=[3,1],实际上代表该直线段的斜率为:dy/dx = y’[t]/x’[t] = 1/3

  10. 参数曲线基础 • 参数表示的优点 • 1)有更大的自由度来控制曲线、曲面的形状 • 比如:y=ax2+bx+c有3个系数a,b,c。但是相应的参数表示,X=at2+bt+c,y=dt2+et+f,有6个系数可以控制曲线 • 2)对曲线、曲面进行变换,可对其参数方程直接进行几何变换。 • 对于非参数方程,变换时需要对每个坐标联动变化,但是参数方程可以在平移、比例等变换中直接操作某一个坐标或者某几个坐标,节省工作量。 • 3)便于处理斜率为无穷大的情形,不会因此而中断计算。 • 4)便于用户把低维空间中曲线、曲面扩展到高维空间去。 • 参数方程中,代数、几何相关和无关的变量是分离的,变量个数不限制,这种变量分离的特性可以让我们用数据公式去处理几何分量,比如后面学到的调和函数。 • 5)规格化的参数变量t∈[0, 1],使其相应的几何分量是有界的,而不必用另外的参数去定义边界。 • 6)易于用矢量和矩阵表示几何分量,简化了计算。 • 后面我们都用参数表示来讨论曲线和曲面问题。

  11. 参数曲线基础 • 参数曲线相关术语 • 一条参数表示的3维曲线是一个有界的点集,可以写成一个带参数的、连续的、单值的数学函数,形式为: • x=x(t),y=y(t),z=z(t) t [0,1] 下面我们要来学习一系列的相关术语: 位置矢量、切矢量、法矢量、曲率和挠率等等

  12. 参数曲线基础 • 参数曲线相关术语 • 位置矢量:曲线上任意一点的位置矢量(即坐标),可以用矢量p(t)表示,p(t)=[x(t),y(t),z(t)] 为什么选参数t呢,物理上可以把3维空间的曲线理解为一个动点的轨迹,表示位置矢量p随时间变化

  13. 参数曲线基础 • 参数曲线相关术语 • 切矢量 • 坐标变量关于参数的变化率 • 物理上代表曲线在某点的运动方向 曲线上R,Q两点参数分别是t和t+△t. 当Q趋向R,也就是△ t→0 导数 的方向P’(t)就代表了R点的切线方向 导数 的大小就可以近似表示△P的长度也可以近似表示这一段弧长△ S

  14. 参数曲线基础 • 参数曲线相关术语 • 弧长 • 当n →∞,可以把弧长表示为无数段p0p1,p1p2….的长度组成 • 而当p0与p1的△ t→0时,p0p1可以近似的表示为 • 于是从0到t的弧长可以表示为:

  15. 参数曲线基础 • 参数曲线相关术语 • 弧长参数表示法与单位切矢量 弧长与参数t无关,与坐标系也无关,以弧长为参数表示曲线易于讨论曲线本身固有的性质。 P=P(s)

  16. 参数曲线基础 • 参数曲线相关术语 • 主法矢、副法矢 • 主法矢是和切矢量垂直的一个矢量,如何推导出来它等于什么呢? • 假设T(s)是曲线在某段的单位切矢量,所以T2(s)=1 • 对上式两边求导得到 ,说明T(s)与T’(s)垂直 • 由于T’(s)可能不是单位矢量,所以设 • 其中k(s)是一个标量,等于T’(s)的大小,N(s)是单位矢量 • 单位矢量N(s)定义为曲线的主法线单位矢量,简称为主法矢;主法矢N(s)总是指向曲线弯曲的方向,其实他是T(s)求导后得到的矢量的方向 • 其中标量k(s)就是曲率的倒数,大小为单位切矢量导数的模。

  17. 参数曲线基础 • 参数曲线相关术语 • 主法矢、副法矢 • 主法矢是和切矢量垂直的一个矢量 • 假设,T是单位切矢量,那么单位主法矢N的方向等于对切矢量求导 • 矢量积 是第三个单位矢量,它垂直于T和N。把平行于矢量B的法矢称为曲线的副法矢 T(切矢)、N(主法矢)和B(副法矢)构成了曲线上的活动坐标架 N、B构成的平面称为法平面,N、T构成的平面称为密切平面,B、T构成的平面称为副法平面。

  18. 参数曲线基础 • 参数曲线相关术语 • 曲率和曲率半径:其几何意义是曲线的单位切矢对弧长的转动率,也就是P(s)到P(s+ds)这段弧的弯曲程度。

  19. 参数曲线基础  • 参数曲线相关术语 • 绕率: 等于副法线方向(或密切平面)对于弧长的转动率,反应了曲线的扭绕特性。 • 平面曲线中密切平面是曲线所在平面,所以副法矢固定不变,所以绕率总是=0,非平面曲线副法矢变化了,会对曲线产生扭动的效果。 T(切矢)、N(主法矢)和B(副法矢)

  20. 曲线曲面概述 参数曲线基础 曲线构造方法 三次参数曲线 目录

  21. 曲线构造方法 • 插值法 • 给定一组有序的数据点Pi,i=0, 1, …, n,构造一条曲线顺序通过这些数据点,称为对这些数据点进行插值,所构造的曲线称为插值曲线。

  22. 曲线构造方法 • 插值法 • 线性插值:假设给定函数f(x)在两个不同点x1和x2的值,用线形函数:y=ax+b,近似代替,称为的线性插值函数。 • 抛物线插值:已知在三个互异点x1,x2,x3的函数值为y1,y2,y3,要求构造函数 ¢(x)=ax2+bx+c,使得¢(x)在xi处与f(x)在xi处的值相等。

  23. 曲线构造方法 • 逼近法 • 构造一条曲线使之在某种意义下最接近给定的数据点(但未必通过这些点) 。常见有:最小二乘法、回归分析 • 在前面的插值法中,如果给定的点(叫做型值点)太多,很难构造插值函数,因此可以适当的放弃一些型值点。 • 型值点:是用于确定曲线和曲面的位置与形状,且相应曲线或曲面一定经过的点。 • 控制点:是用于确定曲线和曲面的位置与形状,但相应曲线或曲面不一定经过。 • 插值点:是在型值点或控制点值之间插入的一系列点。 • 在计算数学中,拟合通常指用一些性质较好的函数近似表示一些性质不好的函数。在计算机图形学中,拟合继承了这方面的含义,因此插值和逼近都可以视为拟合。

  24. 曲线构造方法 • 判断哪些是插值、哪些是逼近

  25. 曲线构造方法 • 连续性条件 • 在拟合过程中,不同控制点和型值点控制的曲线段不一样,我们可能用多组曲线段去组合一条最终的拟合曲线,多条曲线首尾相连形成一条曲线,为了让连接处具有合乎要求的连续性,因此需要定义连续性条件 • Examples: • These two curves do not fit together at all. • These two curves fit together, but not smoothly. • These two curves fit together smoothly.

  26. 曲线构造方法 • 连续性条件 • 参数连续性 • 用 C 阶数表示 • C0连续(0阶参数连续) ——前一段曲线的终点t=1与后一段曲线的起点t=0相同。 • C1连续(一阶参数连续) ——连接点处一阶导数相同,切矢相同 • C2连续(二阶参数连续) ——连接点处一阶导数和二阶导数相同,切矢、法矢相同

  27. 曲线构造方法 我们已经看到, 连续保证 连续, 连续能保证 连续,但反过来不行。也就是说 连续的条件比 连续的条件要苛刻。 • 连续性条件 • 几何连续性 • 用 G 阶数表示 • G0连续(0阶几何连续) ——与C0连续相同。 • G1连续(一阶几何连续) ——一阶导数在连接点成比例,2个切矢量方向相同,大小不同。 • G2连续(二阶几何连续) ——两相邻曲线段的连接点处一阶导数和二阶导数均成比例,所以2个主、副法矢方向相同,2个切矢量方向相同。大小成比例。

  28. 曲线曲面概述 参数曲线基础 曲线构造方法 三次参数曲线 Beizer曲线 B样条曲线 目录

  29. 三次参数曲线 • 三次参数曲线的代数和几何形式 • 代数形式 • 我们以最常见的三次参数曲线为例,讨论参数曲线的代数和几何形式。 • 下面为一般的三次参数曲线的代数形式: • 从a3x到a0x有12个系数为代数系数,它们确定了这条参数曲线的形状和位置。系数不同则曲线不同。 • 把它改写为矢量表达:

  30. 三次参数曲线 • 三次参数曲线的代数和几何形式 • 代数形式 • 把前面的代数方程改写为矢量形式 • P(t)表示曲线上任一点的位置矢量;系数a0表示(a0x,a0y,a0z) • 我们尝试用已知条件来求解这些系数。可供选择的已知条件有:端点坐标、端点坐标的切矢量、法矢量、曲率、绕率等等。对于上面的三次参数曲线,我们使用4个已知条件即可:P(0),P(1), P’(0),P’(1)

  31. 三次参数曲线 • 三次参数曲线的代数和几何形式 • 几何形式 • 对三次参数曲线,若用其端点位矢P(0)、P(1)和切矢P¢(0)、P¢(1)描述。 • 将P(0)、P(1)、P¢(0)和P¢(1)简记为P0、P1、P¢0和P¢1,代入

  32. 三次参数曲线 • 三次参数曲线的代数和几何形式 • 几何形式 • 把a0,a1,a2,a3代入原式,整理后可得

  33. 三次参数曲线 • 三次参数曲线的代数和几何形式 • 几何形式 • 上式是三次Hermite(Ferguson)曲线的几何形式,几何系数是P0、P1、P¢0和P¢1。 • 称为调和函数(或混合函数)

  34. 三次参数曲线

  35. 三次参数曲线 例:给定9个型值点,其中起始点和终止点是同一个点,从而其特征多边形是一个首尾相接的封闭多边形,具体坐标位置如下: (100,300),(120,200),(220,200),(270,100),(370,100),(420,200),(420,300),(220,280),(100,300) 假定各点处的一阶导数数值如下: (70,-70), (70,-70), (70,-70),(70,-70), (70,70), (70,70), (-70,70),(-70,70), (70,-70) 用Hermite插值方法绘制曲线。 解:p0=(100,300) p1=(120,200) p0’=(70,-70) p1’=(70,-70) For(t=0;t<=1;t=t+0.1)或 For(t=0;t<=1;t=t+0.01)或

More Related