资源描述:
《计算几何应用技术》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、5第2章计算机辅助系统开发基础知识2.3计算几何应用技术由于大量的应用领域提供了特有的几何问题,对于这些问题必须建立有效的算法,这就是孕育计算机几何这门学问的基础。特别是CAD领域,提出的一系列问题需要计算几何基础理论的支持。例如,采用何种数学模型进行离散点的插值或拟合问题,表面看来这各问题并不复杂,但深入考虑则产生了问题:数学方程形式往往与坐标系之间具有密切的联系,CAD系统希望摆脱坐标系的约束,采用几何特征量建立曲线方程,这样就可以采用统一的方程形式,不必根据情况专门进行坐标变换,也不必为出现多值函数而头疼了。又如,采用分片曲面描述地形表面或设计表面时,需要采用适当
2、的算法解决判定给定点位于哪一个曲面分块之中的问题。2.3.1曲线拟合与插值对于计算机所处理的某些问题,将一条曲线表示成为一个象素序列可能是非常合适的,但对于另一些问题,则希望曲线能够有一个数学表达式。找出一条通过一组给定点的曲线是一个插值问题,而找出一条近似地通过一组给定点的曲线则是逼近问题,曲线拟合则是一个统称以上两类问题的术语。2.3.1.1多项式插值令(x1,y1),(x2,y2),…,(xn,yn)是平面上的点的序列,切对于i≠j,xi≠xj,能够比较容易地得到(n-1)次的插值多项式公式。n(x–xj)Pn(x)=∑yi∏─────i=1(xi-xj)对于n=
3、2的情况,则可以得到连接两点的直线方程:(x–x2)(x–x1)P2(x)=y1─────+─────(x1-x2)(x2–x1)多项式插值的主要缺点是曲线可能在给定点之间显著震荡,对于这一点我们可以通过如下的示例加以认识。[例]给定5点:(0,0),(1,3),(2,0),(3,0),(4,0),插值多项式为:p(x)=-0.5x(x-2)(x-3)(x-4)该插值曲线具有三个极值点,位于(0.67,3.46),(2.46,-0.47),(3.5,0.66)。直观上,我们可能会希望插值曲线在区间[2,4]之间基本上y=0,而在x=1时具有一个极大值点,然而该曲线不具备
4、这种特性(参见图2-17[a])。[a][b]图2-17多项式及分段多项式插值曲线5第2章计算机辅助系统开发基础知识如果分段多项式插值,能够在一定程度上克服上述缺点,例如,对于与上例相同的5个点,采用如下方程进行插值,其曲线特征能够得到显著改善(图2-17[b])。Pa(x)=6x(0.6-0.7x),0≤x<1.5;Pb(x)=5.4(x-2)2,1.5≤x<2;Pc(x)=0,2≤x≤4.分段多项式的一般表达形式为:p(x)=pi(x),xi≤x≤xi+1,i=0,1,……,k-1p(j)i-1(x)=p(j)i(x),j=0,1,……,r-1,i=1,2,……,k
5、-1点x1,……,xk-1把区间[a,b]分为k个子区间,通常将这些点称为间断点,对应这些x值的曲线上的点称为结点。间断点上的连续性约束条件是由第二组方程表示的,这里p(0)i(x)表示pi(x),而p(j)i(x)(j>0)表示p(x)的第j阶导数。有时,用r=0表示没有任何约束条件。当r=1时,我们得到了一个连续函数,但对于其导数没有约束条件。设pi(x)是m次多项式,如果r=m+1,就会得到一个在[a,b]上的简单多项式。因此,r=m是产生分段多项式的约束条件的最大数。2.3.1.2样条曲线的基本概念对于样条这一概念可以通过绘图员所使用的一种工具加以理解:他们经常
6、使用一把可以弯曲的木尺,通过适当控制弯出一条通过指定数据点的曲线,作为绘图的模板。从这一示例中可以看到,在CAD系统中可以采用样条曲线描述设计对象的曲线特征,事实上在工业领域样条曲线很早就被应用到船体放样的工作之中。对于样条曲线的研究主要关注两个问题:间断点的数量和位置,以及曲线所采用的数学形式。B样条是一种广为使用的样条曲线,其突出优点是对局部的修改不会引起样条形状变化的远距离传播,也就是说修改样条的某些部分时,不会过多地影响曲线的其它部分。设m为样条的次数,B样条在(m+1)个子区间以外的其它子区间上其值都为0。在图2-18中显示了一次、二次和三次B样条基函数的曲线
7、形态。图2-18一、二、三次B样条基函数对于B样条函数可以采用递归的方式加以定义:【定义2-1】第i个子区间上的常数(0次)B样条函数为:1,xi≤x≤xi+1Ni,0(x)=(2-3)0,其它。在区间[xi,xi+m+1]上的第m次B样条函数定义为:(x–xi)(xI+m+1–x)Ni,m(x)=─────Ni,m-1(x)+──────NI+1,m-1(x)(2-4)(xi+m-xi)(xI+m+1–xI+1)根据式(2-3)及(2-4),可以得到:一次B样条函数为:5第2章计算机辅助系统开发基础知识(x–xi)──────,xi≤x