第7章曲线与曲面 曲线和曲面是计算机图形学中重要的研究内 容之一,在实际工作中有广泛的应用。实验、 统计数据的表示,设计、分析和优化的结果显 示,以及汽车、飞机的外型设计都需要用到曲 线和曲面的知识。本章主要介绍曲线和曲面的 基础知识、常用曲线、曲面的数学基础、性质 和分析,并且通过实验对所涉及到的算法进彳 程序设计。 71基础知识 所谓自由曲线和曲面,指的是形状比较复杂 不能用二次方程表示的曲线和曲面。在自
第7章 曲线与曲面 曲线和曲面是计算机图形学中重要的研究内 容之一,在实际工作中有广泛的应用。实验、 统计数据的表示,设计、分析和优化的结果显 示,以及汽车、飞机的外型设计都需要用到曲 线和曲面的知识。本章主要介绍曲线和曲面的 基础知识、常用曲线、曲面的数学基础、性质 和分析,并且通过实验对所涉及到的算法进行 程序设计。 7.1 基础知识 所谓自由曲线和曲面,指的是形状比较复杂、 不能用二次方程表示的曲线和曲面。在自
由曲线和曲面设计中,必须首先研究它的数 学表示形式,并通过计算机图形学的技术 将数学表示(模型)在计算机屏幕上以图 形的形式显示出来 7.11曲线的数学表示 曲线的数学表示形式有显式、隐式和参数 种表示形式。 (1)显式表示:对于一条平面曲线,显 式表示的一般形式是:y=x),即一个x对 应一个y值。例如,一条直线方程y=mx+b 显然,显式表示只能表示直线方程,而不 能表示封闭或多值曲线,如圆、椭圆等
由曲线和曲面设计中,必须首先研究它的数 学表示形式,并通过计算机图形学的技术 将数学表示(模型)在计算机屏幕上以图 形的形式显示出来。 7.1.1 曲线的数学表示 曲线的数学表示形式有显式、隐式和参数 三种表示形式。 (1)显式表示:对于一条平面曲线,显 式表示的一般形式是:y=f(x),即一个x对 应一个y值。例如,一条直线方程y=mx+b。 显然,显式表示只能表示直线方程,而不 能表示封闭或多值曲线,如圆、椭圆等
(2)隐式表示:隐式表示的一般形式是: f(xy)=0。例如,圆锥曲线的一般方程为 ax2+2bxy+cy2+2dx+2e+f=0,通过定义不同 的方程系数,可得到不同的圆锥曲线, 型的圆锥曲线是抛物线、双曲线和椭圆 显式表示和隐式表示两种方式属于非参数 方程,在进行图形显示过程中会出现如下 问题:①与坐标轴相关:;②会出现斜率为 无穷大的情况(如垂直线);③对于非平 面曲线、曲面难以用常系数的非参数化函 数表示;④不便于计算和编程序。因此, 在计算机图形显示中曲线和曲面经常用参
(2)隐式表示:隐式表示的一般形式是: f(x,y)=0。例如,圆锥曲线的一般方程为: ax2+2bxy+cy2+2dx+2ey+f=0,通过定义不同 的方程系数,可得到不同的圆锥曲线,典 型的圆锥曲线是抛物线、双曲线和椭圆。 显式表示和隐式表示两种方式属于非参数 方程,在进行图形显示过程中会出现如下 问题:① 与坐标轴相关;② 会出现斜率为 无穷大的情况(如垂直线);③对于非平 面曲线、曲面难以用常系数的非参数化函 数表示;④ 不便于计算和编程序。因此, 在计算机图形显示中曲线和曲面经常用参
数方程来表示。 (3)参数表示:在平面曲线的参数表示中, 曲线上每一点的坐标均要表示成 数 形式,参数表示的一般形式为: y-yt 曲线上点矢量表示为: P(t=[x(t),y(t)] 参数曲线的切矢量(或导函数)是: P(t=x'(t,y(tI 通常经过对参数变量的规格化,使t在[0 闭区间内变化,对此区间内的参数曲线进 研究。利用参数表示曲线具有很多
数方程来表示。 (3)参数表示:在平面曲线的参数表示中, 曲线上每一点的坐标均要表示成一个参数 形式,参数表示的一般形式为: x=x(t) y=y(t) 曲线上点矢量表示为: P(t)=[ x(t), y(t)] 参数曲线的切矢量(或导函数)是: P’(t)=[ x’(t), y’(t)] 通常经过对参数变量的规格化,使t在[0, 1]闭区间内变化,对此区间内的参数曲线进 行研究。利用参数表示曲线具有很多
优越性,对曲线的形状也更容易控制,因 此自由曲线一般都是由参数方程来表示。 例如,通过两点p1(x1y1)和p2(x2,y2)的直 线段参数方程表示为: )=p1+(p2-p1),其中t∈[O,1], p(t=x(t,y(t pl=xl,yl p2=x2, y2 x(t)=x1+(X2-x1)t yt)=y1+(y2-y1) 7.1.2插值、逼近、拟合和光顺 在研究和应用曲线和曲面时,经常要用到值 逼近、拟合和光顺技术,下面具体解释 下这四个概念的含义及其所采用的技
优越性,对曲线的形状也更容易控制,因 此自由曲线一般都是由参数方程来表示。 例如,通过两点p1(x1,y1)和p2(x2,y2)的直 线段参数方程表示为: p(t)=p1+(p2-p1)t,其中t∈[0,1], p(t)=[x(t),y(t)], p1=[x1,y1], p2=[x2,y2] 即 x(t)=x1+(x2-x1)t y(t)=y1+(y2-y1)t 7.1.2 插值、逼近、拟合和光顺 在研究和应用曲线和曲面时,经常要用到值、 逼近、拟合和光顺技术,下面具体解释一 下这四个概念的含义及其所采用的技
术 1.插值 插值是函数逼近的重要方法。设给定函 数x)在区间ab中互异的n个点(称为型值 点)的值f(x),i=1,2,,n,基于这个列表 数据,寻找某一函数p(x)去逼近f(x)如果 要求p(x)在x处与f(x)相等,就称这样的函 数通近问题称为插值问题,称o(x)为f(x)的 插值函数。也就是说,(x)在n个插值点x 与f(xi)相等,而在别处就用去Q(x近似代
术。 1.插值 插值是函数逼近的重要方法。设给定函 数f(x)在区间[a,b]中互异的n个点(称为型值 点)的值 (xi),i=1,2,…,n,基于这个列表 数据,寻找某一函数(x)去逼近 (x)。如果 要求(x)在xi处与 (xi)相等,就称这样的函 数逼近问题称为插值问题,称(x)为 (x)的 插值函数。也就是说,(x)在n个插值点xi 与 (xi)相等,而在别处就用去(x)近似代
替f(x)。求给定型值点之间曲线上的 点称为曲线的插值 在曲线和曲面中最常用的是线性插 值和抛物线插值。 1)线性插值r 假设给定函数f(x两个不同点x1和x2的 值,y1=f(x1),八。线型插值是用过 这两个点的直线熟v=max+b来近似代替 函数y=f(x)。如图所示
替 (x)。求给定型值点之间曲线上的 点称为曲线的插值。 在曲线和曲面中最常用的是线性插 值和抛物线插值。 (1)线性插值 假设给定函数 (x)在两个不同点x1和x2的 值,y1= (x1),y2= (x2)。线型插值是用过 这两个点的直线段y=(x)=ax+b来近似代替 函数y= (x)。如图7.1所示。 y=f(x) y=(x) y x1 x x 2 y1 y2 图7.1.1 线性插值
q(x)=yl+(xx1)(点斜式) 例如,已知fx)=x,x1=523,y1=7.232, x2=524,y2=7239,求5237。 用过两点的直线段来代替函数f(x)。线性插值函数 (72397.232) (524-52.3) p(x)=7232+ (x-52.3) 7239-7.232) 52.4-52 p(52.37)=7.232+ 52.37-52.3)=7.2369
(x2-x1) (x)= y1+ (x-x1) (点斜式) 例如,已知f(x)=x ,x1=52.3,y1=7.232, x2=52.4,y2=7.239,求52.37 。 用过两点的直线段来代替函数 (x) 。线性插值函数 (7.239-7.232) (52.4-52.3) (x)= 7.232+ (x-52.3) (7.239-7.232) (52.4-52.3) (52.37)= 7.232+ (52.37-52.3) =7.2369
(2)抛物线插值 设已知函数f(x)上三个互异点x1,x2,×3的函 数值,分别为yl,y2y3,要求构造一个抛物 线函数:0(x)=ax2+bx+c,使q(x)在三个型 值点上满足条件:q(xi)=f(xi),i=1,2,3。通 过联立方程组,求出abc,即可以得到抛物 线函数o(x)的插值函数。如图71.2所是
(2)抛物线插值 设已知函数 (x)上三个互异点x1, x2,x3的函 数值,分别为y1, y2,y3,要求构造一个抛物 线函数:(x)=ax2+bx+c,使(x)在三个型 值点上满足条件:(xi)= (xi),i=1,2,3。通 过联立方程组,求出a,b,c,即可以得到抛物 线函数(x)的插值函数。如图7.1.2所是。 y=f(x) y=(x) y x1 x x3 y1 y2 图7.1.2 抛物线插值 y3 x2
2.逼近 由于要求插值函数通过每个型值点,这使得构 造插值函数相当困难。另外,由于过多的型值点 也会有误差,没有必要寻找一个插值函数来通过 所有的型值点。因此,在实际应用中往往选择 个次数较低的函数,在某种意义上最佳逼近这些 型值点。最常用的逼近方法就是最小二乘法。 假设已知一组型值点(xiyi),i=0,1,2,,n,要 求构造一个m(m<n-1)次的多项式yF(x)逼近这 些型值点,满足条件:y0=F(x0),yn=F(xn)并且使 各点偏差的平方和最小
2.逼近 由于要求插值函数通过每个型值点,这使得构 造插值函数相当困难。另外,由于过多的型值点 也会有误差,没有必要寻找一个插值函数来通过 所有的型值点。因此,在实际应用中往往选择一 个次数较低的函数,在某种意义上最佳逼近这些 型值点。最常用的逼近方法就是最小二乘法。 假设已知一组型值点(xi,yi),i=0,1,2,…,n,要 求构造一个m(m<n-1)次的多项式y=F(x) 逼近这 些型值点,满足条件:y0=F(x0), yn=F(xn),并且使 各点偏差的平方和最小