第5章曲线和曲面_第1页
第5章曲线和曲面_第2页
第5章曲线和曲面_第3页
第5章曲线和曲面_第4页
第5章曲线和曲面_第5页
已阅读5页,还剩191页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第5章章 曲线和曲面曲线和曲面 曲线和曲面可分为由已知方程式表示的规则曲线或曲线和曲面可分为由已知方程式表示的规则曲线或曲面和用曲线或曲面拟合方法逼近的不规则曲线或曲面。曲面和用曲线或曲面拟合方法逼近的不规则曲线或曲面。这些不规则曲线或曲面一般采用分段的多项式参数方程这些不规则曲线或曲面一般采用分段的多项式参数方程来表示,由此形成一条光滑连续的曲线或曲面称为样条来表示,由此形成一条光滑连续的曲线或曲面称为样条曲线或曲面。曲线或曲面。本章将主要讨论参数样条曲线和曲面的绘本章将主要讨论参数样条曲线和曲面的绘制方法。制方法。 5.1 曲线和曲面基础曲线和曲面基础 从卫星的轨道、导弹的弹道,到汽车和

2、飞机等的外形,从卫星的轨道、导弹的弹道,到汽车和飞机等的外形,直至日常生活中的图案和花样设计,都离不了对曲线的描直至日常生活中的图案和花样设计,都离不了对曲线的描述和绘制。以至于可以说,几乎没有一张设计图纸上是没述和绘制。以至于可以说,几乎没有一张设计图纸上是没有曲线的。有曲线的。 在我们遇到的各种各样的曲线中,归纳起来,大概在我们遇到的各种各样的曲线中,归纳起来,大概不外乎两类:一类是我们已经比较熟悉的,如圆、椭圆、不外乎两类:一类是我们已经比较熟悉的,如圆、椭圆、双曲线、正弦余弦、概率分布、摆线螺线等等。这类曲双曲线、正弦余弦、概率分布、摆线螺线等等。这类曲线均可以用一个曲线方程式来表示,

3、称此类曲线为线均可以用一个曲线方程式来表示,称此类曲线为规则规则曲线曲线。比如圆的方程可以写成。比如圆的方程可以写成 x2y2 = R2等。等。 而另有一类曲线,我们尚不能确切给出描述整个曲线而另有一类曲线,我们尚不能确切给出描述整个曲线的方程,它们往往是由一些从实际中测量得到的一系列离的方程,它们往往是由一些从实际中测量得到的一系列离散数据点用曲线拟合方法来逼近的,称为散数据点用曲线拟合方法来逼近的,称为不规则曲线不规则曲线。这。这些曲线一般采用分段的多项式参数方程来表示,由此形成些曲线一般采用分段的多项式参数方程来表示,由此形成一条光滑连续的曲线称为样条曲线或简称样条。常见的参一条光滑连续

4、的曲线称为样条曲线或简称样条。常见的参数样条曲线有抛物样条曲线、数样条曲线有抛物样条曲线、Hermite插值样条曲线、插值样条曲线、Bezier样条曲线和样条曲线和B样条曲线等。样条曲线等。 当曲线的数学表达方法确定以后,剩下的问题就是如当曲线的数学表达方法确定以后,剩下的问题就是如何把这些曲线绘制出来。要绘制一条指定的曲线函数的直何把这些曲线绘制出来。要绘制一条指定的曲线函数的直接方法是用很多短直线段来逼近曲线。绘出的曲线的光滑接方法是用很多短直线段来逼近曲线。绘出的曲线的光滑度和精确度取决于我们所选择的数据点的精度和数量。点度和精确度取决于我们所选择的数据点的精度和数量。点的数量越多,直线

5、段越短,则连成的曲线愈接近于理想曲的数量越多,直线段越短,则连成的曲线愈接近于理想曲线。线。 至于点的数量取多少,直线段取多长,则取决于我们至于点的数量取多少,直线段取多长,则取决于我们对所绘制曲线的精度要求和图形输出设备的精度,但我们对所绘制曲线的精度要求和图形输出设备的精度,但我们对所绘制曲线的精度要求不能逾越图形输出设备所实际具对所绘制曲线的精度要求不能逾越图形输出设备所实际具有的精度。有的精度。 5.1.1 规则曲线和曲面的规则曲线和曲面的3种坐标表示法种坐标表示法 一般平面曲线常用直角坐标、极坐标或参数方程表示,一般平面曲线常用直角坐标、极坐标或参数方程表示,如工程上常用的渐开线、摆

6、线以及正弦余弦曲线等,都是如工程上常用的渐开线、摆线以及正弦余弦曲线等,都是用这三种坐标表示的重要曲线。但从计算机图形学和计算用这三种坐标表示的重要曲线。但从计算机图形学和计算几何的角度看,用参数方程绘制曲线比较方便。几何的角度看,用参数方程绘制曲线比较方便。 实际上绘制任何平面曲线都要将曲线方程用参数方实际上绘制任何平面曲线都要将曲线方程用参数方程形式表示,即得到曲线上点坐标程形式表示,即得到曲线上点坐标x与与y的分别计算式。于的分别计算式。于是计算出点的坐标值,调用画线函数或画点函救绘出曲线是计算出点的坐标值,调用画线函数或画点函救绘出曲线上的所有点,便得到一条曲线。上的所有点,便得到一条

7、曲线。 1直角坐标曲线直角坐标曲线 曲线的直角坐标表示,有显式曲线的直角坐标表示,有显式y = f(x) 和隐式和隐式f(x,y) = 0之分。如之分。如y = sin (x) 是显式表示,而是显式表示,而x2 + y2 = 1是隐式表示。是隐式表示。无论是哪种表示,都要将其转换成参数坐标表示即无论是哪种表示,都要将其转换成参数坐标表示即 x = x(t) y = y(t) 然后可以开始绘制它的图形了。下面对曲线的直角坐然后可以开始绘制它的图形了。下面对曲线的直角坐标显式和隐式两种表示分别加以讨论。标显式和隐式两种表示分别加以讨论。 (1)显式)显式 对于显式表示对于显式表示y = f(x)

8、的曲线转换成参数坐标表示,这的曲线转换成参数坐标表示,这是非常容易的,即是非常容易的,即 y = kx + b x = x y = f(x) 这里式子右边的这里式子右边的x看成参数变量。此两式便是显式表示看成参数变量。此两式便是显式表示y = f(x) 曲线的参数坐标表示。曲线的参数坐标表示。 例如正弦曲线例如正弦曲线y = sin(x) 是直角坐标显式表示其参数是直角坐标显式表示其参数坐标表达式为坐标表达式为 x = x y = sin(x) 这时式子右边的这时式子右边的x当作参数变量。这样给定一个参当作参数变量。这样给定一个参数变量数变量x值,就可求得正弦曲线上一个点的坐标值,就可求得正弦

9、曲线上一个点的坐标x与与y值。值。进而一点一点地绘出正弦曲线。进而一点一点地绘出正弦曲线。 (2)隐式)隐式 一般隐式一般隐式f(x,y) = 0的曲线转换成参数坐标表示式是很的曲线转换成参数坐标表示式是很困难的,如下面隐式曲线困难的,如下面隐式曲线 4x43x3 + 2y2yx2(a + x)/(ax)= 0 (a0) 要表示成参数坐标式,至今未能成功,因此无法使用要表示成参数坐标式,至今未能成功,因此无法使用计算机绘制它的图形。不过常用的重要曲线基本上都能计算机绘制它的图形。不过常用的重要曲线基本上都能用参数坐标表示。例如星形线直角坐标表示式:用参数坐标表示。例如星形线直角坐标表示式: x

10、2/3y2/3 = R2/3 (R正常数)正常数) 可写成参数坐标表示式:可写成参数坐标表示式: x = Rcos3 y = Rsin3 (02)从而可用计算机绘出其曲线图。从而可用计算机绘出其曲线图。 F(x,y) =ax+by+c=0 2极坐标曲线极坐标曲线 对任一极坐标曲线对任一极坐标曲线=(),可利用极坐标与直角坐标变可利用极坐标与直角坐标变换关系式换关系式 x =cos y =sin 将此曲线转换成参数坐标表示为将此曲线转换成参数坐标表示为 x =()cos y =()sin这里这里成为参数坐标。成为参数坐标。 例如,重要曲线阿基米德螺线例如,重要曲线阿基米德螺线 =a (a正常数)

11、正常数) 极坐标与直角坐标变换关系式极坐标与直角坐标变换关系式 x =cos y =sin 将阿基米德螺线将阿基米德螺线=a代入上面两式,便得代入上面两式,便得 x =acos y =asin这样就将阿基米德螺线极坐标表示转换成了参数坐标表示。这样就将阿基米德螺线极坐标表示转换成了参数坐标表示。 由阿基米德螺线参数坐标表示式由阿基米德螺线参数坐标表示式 x =acos y =asin可以计算出其曲线上点的坐标值,然后用这些点的坐标值可以计算出其曲线上点的坐标值,然后用这些点的坐标值调用绘图函数就可绘出阿基米德螺线曲线图。调用绘图函数就可绘出阿基米德螺线曲线图。 3参数坐标曲线参数坐标曲线 曲线

12、的参数坐标表示一般为曲线的参数坐标表示一般为 x =x(t) y =y(t) 如弹道曲线如弹道曲线 x =V0tcos y =V0tsingt2/2 (0t2 V0Sin/g)式中式中V0,g,均为常数,均为常数,t为参数变量。为参数变量。 对于给定一个参数变量对于给定一个参数变量t值,就可求得弹道曲线上一个值,就可求得弹道曲线上一个点的点的x与与y坐标值。若给出参数变量坐标值。若给出参数变量t的一系列值,便可求出的一系列值,便可求出弹道曲线上一系列点的弹道曲线上一系列点的x和和y坐标值。有了坐标值。有了x, ,y坐标值坐标值, ,使用使用绘图函数把这一系列点绘制出来绘图函数把这一系列点绘制出

13、来, ,就获得一条弹道曲线。就获得一条弹道曲线。 P(t)=P1+(P2-P1)t (0t1)x(t)=x1+(x2-x1)ty(t)=y1+(y2-y1)t 对于某一参数曲线,我们不可能也没有必要去研究参对于某一参数曲线,我们不可能也没有必要去研究参变量变量t从从到到+的整条曲线,而往往只对其中的某一段的整条曲线,而往往只对其中的某一段感兴趣。通常我们经过对参变量感兴趣。通常我们经过对参变量t的规格化变换,使的规格化变换,使t在在0,1闭区间内变化,写成闭区间内变化,写成t0,1,对此区间内的参数曲线,对此区间内的参数曲线进行研究。进行研究。 4参数曲线的优点参数曲线的优点 在曲线的表示上,

14、参数方程比显式、隐式方程有更在曲线的表示上,参数方程比显式、隐式方程有更多的优越性。多的优越性。 (1)有更大的自由度来控制曲线的形状。如一条二维)有更大的自由度来控制曲线的形状。如一条二维三次曲线的显式表示为:三次曲线的显式表示为: y = ax3Bx2cxd其中只有其中只有4个系数可用来控制此曲线的形状。个系数可用来控制此曲线的形状。 而二维三次曲线的参数表达式为:而二维三次曲线的参数表达式为: x = at3Bt2ctd y = et3ft2gth其中有其中有8个系数可用来控制此曲线的形状。个系数可用来控制此曲线的形状。 (2)对非参数方程表示的曲线进行变换,必须对曲)对非参数方程表示的

15、曲线进行变换,必须对曲线上的每个型值点进行几何变换;而对参数表示的曲线线上的每个型值点进行几何变换;而对参数表示的曲线可对其参数方程直接进行几何变换(如平移、比例、旋可对其参数方程直接进行几何变换(如平移、比例、旋转),从而节省计算工作量。转),从而节省计算工作量。 (3)便于处理斜率为无限大的问题,不会因此而中)便于处理斜率为无限大的问题,不会因此而中断计算。断计算。 (4 4)规格化的参数变量)规格化的参数变量t0,1,使其相应的几何分,使其相应的几何分量是有界的,而不必用另外的参数去定义其边界。量是有界的,而不必用另外的参数去定义其边界。 (5 5)参数方程中,代数、几何相关和无关的变量

16、是完)参数方程中,代数、几何相关和无关的变量是完全分离的,而且对变量个数不限,从而便于用户把低维空全分离的,而且对变量个数不限,从而便于用户把低维空间中的曲线扩展到高维空间去。这种变量分离的特点使我间中的曲线扩展到高维空间去。这种变量分离的特点使我们可以用数学公式去处理几何分量,如我们以后用的调和们可以用数学公式去处理几何分量,如我们以后用的调和函数就具有此特点。函数就具有此特点。 (6)易于用矢量和矩阵表示几何分量,简化了计算。)易于用矢量和矩阵表示几何分量,简化了计算。基于这些优点,我们在以后将用参数表达式来讨论曲线基于这些优点,我们在以后将用参数表达式来讨论曲线问题。问题。5.1.2 参

17、数样条曲线和曲面的常用术语参数样条曲线和曲面的常用术语 在工程设计中,一般多采用低次的参数样条曲线。在工程设计中,一般多采用低次的参数样条曲线。这是因为高次参数样条曲线计算费时,其数学模型难于这是因为高次参数样条曲线计算费时,其数学模型难于建立且性能不稳定,即任何一点的几何信息的变化都有建立且性能不稳定,即任何一点的几何信息的变化都有可能引起曲线形状复杂的变化。可能引起曲线形状复杂的变化。 因此,实际工作中常采用二次或三次参数样条曲线,如:因此,实际工作中常采用二次或三次参数样条曲线,如: 二次参数样条曲线:二次参数样条曲线: P (t) = A0 + A1t + A2t2 三次参数样条曲线:

18、三次参数样条曲线: P (t) = A0 + A1t + A2t2 + A3t3 1型值点和控制点型值点和控制点 所谓型值点,是指通过测量或计算得到的曲线上少量所谓型值点,是指通过测量或计算得到的曲线上少量描述曲线几何形状的数据点。由于型值点的数量有限,描述曲线几何形状的数据点。由于型值点的数量有限,不足以充分描述曲线的形状,因此通常是在求得一些型不足以充分描述曲线的形状,因此通常是在求得一些型值点后,采用一定的数学方法,建立曲线的数学模型,值点后,采用一定的数学方法,建立曲线的数学模型,从而再根据数学模型去获得曲线上每一点的几何信息。从而再根据数学模型去获得曲线上每一点的几何信息。 所谓控制

19、点,是指用来控制或调整曲线形状的特殊点,所谓控制点,是指用来控制或调整曲线形状的特殊点,曲线段本身不通过该控制点。曲线段本身不通过该控制点。 MQttpttptpt)()(lim)(01)切线切线 如图如图5-1,设空间中的一条参数曲线为,设空间中的一条参数曲线为P(t),M、Q为为曲线上邻近的两点,分别对应于曲线上邻近的两点,分别对应于p(t)与与p(t+t),当曲线上当曲线上的点的点Q趋于趋于M时,割线时,割线的极限位置为:的极限位置为:2切线、法线和切线、法线和Frenet标架标架 称为曲线在点称为曲线在点M处的切线,而定点处的切线,而定点M称为切点,切线方称为切点,切线方向称为切向量或

20、切矢量向称为切向量或切矢量T。直观上看,切线是通过切点的所。直观上看,切线是通过切点的所有直线当中最贴近曲线的直线。有直线当中最贴近曲线的直线。 图5-1 曲线的切线定义 若参数曲线上任一点的坐标为若参数曲线上任一点的坐标为p(t) = x(t),y(t),z(t),则该,则该点的切线方程即为参数曲线在该点处的一阶导函数,即点的切线方程即为参数曲线在该点处的一阶导函数,即p(t) = x(t),y(t),z(t)。如果选择弧长。如果选择弧长s作为参数,我们还可作为参数,我们还可以得到:以得到: 由于在极限情况下,由于在极限情况下,|P|=|S|,所以上面式所以上面式(5-4)和(和(5-5)中

21、)中的的T是单位长度矢量,其方向为曲线的切线方向,称之为单位切是单位长度矢量,其方向为曲线的切线方向,称之为单位切矢量,矢量,T 的几何意义是:的几何意义是:T 的方向角度变化反映出曲线的平坦程的方向角度变化反映出曲线的平坦程度度,当当T的方向恒定不变时,曲线则变为一条直线,参见后面图的方向恒定不变时,曲线则变为一条直线,参见后面图5-3(b)、(c)。)55()()45(,)(spdsdpTdtdsTdtdsdsdpdtdptp 过上述空间曲线过上述空间曲线P(t)上上M点的切线和点的切线和M点的邻近一点点的邻近一点Q还可还可作一平面,当作一平面,当Q点沿着曲线趋近于点沿着曲线趋近于P时,平

22、面的极限位置称为时,平面的极限位置称为曲线在曲线在M点的密切平面,如图点的密切平面,如图5-2所示。所示。2)法线法线 法线就是垂直切线方向法线就是垂直切线方向T且通过切点且通过切点M的直线,在密切平的直线,在密切平面上的法线称为主法线,所在的方向称为主法向量面上的法线称为主法线,所在的方向称为主法向量N,而垂直,而垂直于密切平面还存在一条法线,如图于密切平面还存在一条法线,如图5-2所示,该法线称为副法所示,该法线称为副法线,所在的方向称为副法向量线,所在的方向称为副法向量B。主法向量与副法向量构成法。主法向量与副法向量构成法平面,而切向量与副法向量构成从切平面。平面,而切向量与副法向量构成

23、从切平面。3) Frenet标架标架 假设假设N和和B均为单位向量,我们把两两相互垂直的单位向量均为单位向量,我们把两两相互垂直的单位向量T、N和和B称为曲线称为曲线P(t)上上M点的点的Frenet标架,如图标架,如图5-2所示。所示。 图5-2 曲线上任意点的Frenet标架构成图5-1 曲线的切线定义 yxQMd+ +ddds(a) 曲率的定义 (b) 曲率的几何意义(c) 不同曲率的圆弧曲线比较图5-3 曲线的曲率定义与计算3曲率和挠率 1)曲率曲率 如图如图5-3(a)所示,曲线上两点所示,曲线上两点M和和Q的切线的夹角的切线的夹角与与 弧长弧长MQ之比,当之比,当Q趋于趋于M时的极

24、限,即时的极限,即 上式上式(5-6)的推导表明,曲率既是也是切线的方向角对于弧长的推导表明,曲率既是也是切线的方向角对于弧长的转动率,又是单位切向量对于弧长的旋转速率,参见图的转动率,又是单位切向量对于弧长的旋转速率,参见图5-3(b)。 当曲线在一点的弯曲程度越大,切向量对于弧长的旋转速度当曲线在一点的弯曲程度越大,切向量对于弧长的旋转速度就越大,因此曲率刻画了曲线的弯曲程度,如图就越大,因此曲率刻画了曲线的弯曲程度,如图5-3(c)所示。所示。式式(5-7)表明,其值实际上为曲线在表明,其值实际上为曲线在M处的二阶导数。处的二阶导数。 )(,根据式)(75)() 15(65limlim2

25、20spdspddsdTkdsdTdTddsdTdsdsMQks一般参数曲线一般参数曲线P(t)曲率的计算公式为:曲率的计算公式为:3 PPPk 而曲率半径的计算公式则是:而曲率半径的计算公式则是:=1/k。 (5-8) 1)曲率曲率对于空间曲线,曲线不仅弯曲,而且还要扭转,挠率便是对于空间曲线,曲线不仅弯曲,而且还要扭转,挠率便是衡量曲线扭转变形程度的一种度量。具体地说,曲线挠率衡量曲线扭转变形程度的一种度量。具体地说,曲线挠率的大小表现出其离开密切平面的程度大小。空间曲线上任的大小表现出其离开密切平面的程度大小。空间曲线上任意一点的挠率可以由下列公式表达为:意一点的挠率可以由下列公式表达为

26、: 挠率表达式挠率表达式(5-9)的几何意义是:挠率即为曲线在副法方的几何意义是:挠率即为曲线在副法方向上随弧线长度变化的速率,它是一般曲线变形的重要表述向上随弧线长度变化的速率,它是一般曲线变形的重要表述参数。不难理解:挠率恒等于零的曲线是平面曲线,而曲率参数。不难理解:挠率恒等于零的曲线是平面曲线,而曲率恒等于零的曲线则为直线。另外,切线方向恒定不变的曲线恒等于零的曲线则为直线。另外,切线方向恒定不变的曲线也必定是直线。也必定是直线。dsdBsBs0lim(5-9)2)挠率)挠率 而曲线的拟合则是这两种设计方法的统称,是指在曲而曲线的拟合则是这两种设计方法的统称,是指在曲线的设计过程中,用

27、插值或逼近方法使生成的曲线达到某线的设计过程中,用插值或逼近方法使生成的曲线达到某些设计要求,如在允许的范围内贴近原始的型值点或控制些设计要求,如在允许的范围内贴近原始的型值点或控制点序列,或曲线看上去很光滑等。点序列,或曲线看上去很光滑等。 4参数连续性和几何连续性参数连续性和几何连续性 为保证分段参数曲线从一段到另一段平滑过渡,我为保证分段参数曲线从一段到另一段平滑过渡,我们可以在连接点处要求各种参数连续性条件。们可以在连接点处要求各种参数连续性条件。 0阶参数连续性,记作阶参数连续性,记作C0连续,是指曲线相连,即第连续,是指曲线相连,即第一个曲线段的终点与第二个曲线段的起点相同。一阶参

28、数一个曲线段的终点与第二个曲线段的起点相同。一阶参数连续性,记作连续性,记作C1连续性,指代表两个相邻曲线段的方程在连续性,指代表两个相邻曲线段的方程在相交点处有相同的一阶导数(切线)。二阶参数连续性,相交点处有相同的一阶导数(切线)。二阶参数连续性,记作记作C2连续性,是指两个曲线段在交点处有相同的一阶和连续性,是指两个曲线段在交点处有相同的一阶和二阶导数。二阶导数。 4参数连续性和几何连续性参数连续性和几何连续性 1 1)参数连续性参数连续性 为保证分段参数曲线从一段到另一段平滑过渡,我们可为保证分段参数曲线从一段到另一段平滑过渡,我们可以在连接点处要求各种参数连续性条件。以在连接点处要求

29、各种参数连续性条件。 0 0阶参数连续性,记作阶参数连续性,记作C C0 0连续,是指曲线相连,即第一个连续,是指曲线相连,即第一个曲线段的终点与第二个曲线段的起点相同。曲线段的终点与第二个曲线段的起点相同。 一阶参数连续性,记作一阶参数连续性,记作C C1 1连续性,指代表两个相邻曲线段连续性,指代表两个相邻曲线段的方程在相交点处有相等的一阶导数的方程在相交点处有相等的一阶导数( (切线切线) )。 二阶参数连续性,记作二阶参数连续性,记作C C2 2连续性,是指两个曲线段在交点连续性,是指两个曲线段在交点处有相等的一阶和二阶导数。处有相等的一阶和二阶导数。参数连续性和几何连续性参数连续性和

30、几何连续性 示意图2)几何连续性)几何连续性 连结两个相邻曲线段的另一个方法是指定几何连续性条件。连结两个相邻曲线段的另一个方法是指定几何连续性条件。这种情况下,只需两曲线段在相交处的参数导数成比例而不是这种情况下,只需两曲线段在相交处的参数导数成比例而不是相等。相等。 0阶几何连续性,记为阶几何连续性,记为G0连续性,与连续性,与0阶参数连续性相同,阶参数连续性相同,即两个曲线段必在公共点处有相同的坐标。即两个曲线段必在公共点处有相同的坐标。 一阶几何连续性,记为一阶几何连续性,记为 G1连续性,指一阶导数在两个相邻连续性,指一阶导数在两个相邻段的交点处成比例但不一定相等,方向相同。段的交点

31、处成比例但不一定相等,方向相同。 二阶几何连续性,记为二阶几何连续性,记为G2连续性,指两个曲线段在相交处连续性,指两个曲线段在相交处其一阶和二阶导数均成比例但不一定相等,其一阶和二阶导数均成比例但不一定相等, 方向相同。方向相同。 在实际的曲线造型应用中,我们要适当地选择曲线段间的在实际的曲线造型应用中,我们要适当地选择曲线段间的连续性,使造型物体既能保证其光滑性的要求,也能保证其美连续性,使造型物体既能保证其光滑性的要求,也能保证其美观性的要求。观性的要求。 4参数连续性和几何连续性参数连续性和几何连续性 4 4插值、逼近和拟合及光顺插值、逼近和拟合及光顺 插值与逼近是曲线和曲面设计中的两

32、种不同方法。插值设插值与逼近是曲线和曲面设计中的两种不同方法。插值设计方法要求建立的曲线或曲面数学模型,严格通过已知的每一计方法要求建立的曲线或曲面数学模型,严格通过已知的每一个型值点。常用的插值方法有线性插值和抛物线插值两种。而个型值点。常用的插值方法有线性插值和抛物线插值两种。而逼近设计方法,顾名思义,用这种方法建立的曲线或曲面数学逼近设计方法,顾名思义,用这种方法建立的曲线或曲面数学模型只是近似地接近已知的型值点。常用的逼近方法有最小二模型只是近似地接近已知的型值点。常用的逼近方法有最小二乘法等。而曲线或曲面的拟合则是这两种设计方法的统称,是乘法等。而曲线或曲面的拟合则是这两种设计方法的

33、统称,是指在曲线或曲面的设计过程中,用插值或逼近方法使生成的曲指在曲线或曲面的设计过程中,用插值或逼近方法使生成的曲线或曲面达到某些设计要求,如在允许的范围内贴近原始的型线或曲面达到某些设计要求,如在允许的范围内贴近原始的型值点或控制点序列,曲线或曲面看上去很光滑等。值点或控制点序列,曲线或曲面看上去很光滑等。 光顺就是光滑、顺眼的意思,光顺就是光滑、顺眼的意思,“光滑光滑”通常指曲线通常指曲线曲面的参数连续性或几何连续性,主要是从数学的角度曲面的参数连续性或几何连续性,主要是从数学的角度来考虑,有严格的数学定义;来考虑,有严格的数学定义;“顺眼顺眼”则可以理解为侧则可以理解为侧重于美学、功能

34、、力学等诸多方面的要求,如曲线的拐重于美学、功能、力学等诸多方面的要求,如曲线的拐点不能太多,拐来拐去就会不顺眼。对于平面曲线而言,点不能太多,拐来拐去就会不顺眼。对于平面曲线而言,一般的光顺准则是:二阶几何连续(一般的光顺准则是:二阶几何连续(G G2 2连续)、没有多连续)、没有多余拐点、曲率变化比较均匀。其中余拐点、曲率变化比较均匀。其中“拐点拐点”的意思是指的意思是指曲线的凸凹发生改变的点,曲线的凸凹发生改变的点,“拐来拐去拐来拐去”的典型曲线如的典型曲线如常见的正弦曲线。常见的正弦曲线。 4 4插值、逼近和拟合及光顺插值、逼近和拟合及光顺 光顺示意图光顺示意图5参数曲线的代数形式、几

35、何形式及调和函数的概念参数曲线的代数形式、几何形式及调和函数的概念 1)参数形式:P(t)=P1+(P2-P1)t (0t1)对比 x(t)=a1t+a02)几何形式:P(t)=(1-t) P1+t P2 (0t1)3)调和函数f1(t)=1-t; f2(t)=t,f1(t)+f2(t)=15.2 二次插值二次插值样条曲线样条曲线 5.2.1 二次插值样条曲线的数学表达式二次插值样条曲线的数学表达式 在拟合生成样条曲线的众多方法中,我们首先选择较在拟合生成样条曲线的众多方法中,我们首先选择较为简单的二次样条曲线即抛物样条曲线的生成方法作为基为简单的二次样条曲线即抛物样条曲线的生成方法作为基本方

36、法,来讨论如何用插值方法生成通过给定离散型值点本方法,来讨论如何用插值方法生成通过给定离散型值点的样条曲线。实际上,二次的样条曲线。实际上,二次Bezier曲线和二次曲线和二次B样条曲线样条曲线也是抛物样条曲线,但它们采用的方法是逼近方法。也是抛物样条曲线,但它们采用的方法是逼近方法。 由于离散点的要求,我们首先要解决由给定点定义抛由于离散点的要求,我们首先要解决由给定点定义抛物线问题。设有不在同一直线上的三点:物线问题。设有不在同一直线上的三点:P1, P2, P3,现在,现在要求通过该给定的三点定义一条抛物线。如图要求通过该给定的三点定义一条抛物线。如图5.2所示。所示。 P1P2P3图图

37、5.2 5.2 过三点的二次曲线过三点的二次曲线 假如我们采用矢量表达式假如我们采用矢量表达式来表示参数化的二次曲线,那来表示参数化的二次曲线,那么可以把抛物线的表达式写成么可以把抛物线的表达式写成如下的一般形式为:如下的一般形式为: P(t)= A1 + A2t + A3t2 (0 t1) (5-1) 抛物线是一条二次曲线,所以表达式中参数抛物线是一条二次曲线,所以表达式中参数t的最高次的最高次数为数为2,同时让参数,同时让参数t在在0l之间取值。之间取值。 这就是说,只要确定了式这就是说,只要确定了式( (51)中的三个系数:中的三个系数:A1, ,A2和和A3,那么就确定了抛物线的表达式

38、,随之抛物线的曲线,那么就确定了抛物线的表达式,随之抛物线的曲线图形也就可以确定。所以,我们的工作是要通过设定一些图形也就可以确定。所以,我们的工作是要通过设定一些已知条件来求出这三个系数。已知条件来求出这三个系数。 要确定这三个系数要确定这三个系数( (目前尚为未知数目前尚为未知数) ),必须要有三,必须要有三个独立的条件。我们可以给定这三个独立条件为:个独立的条件。我们可以给定这三个独立条件为: 该抛物线过该抛物线过P1,P2,P3三个点,并且:三个点,并且: 抛物线段以抛物线段以P1点为始点。即当参变量点为始点。即当参变量t = 0时,曲线时,曲线过过P1点;点;抛物线段以抛物线段以P3

39、点为终点。即当参变量点为终点。即当参变量t = 1时,时,曲线过曲线过P3点;点;当参变量当参变量t = 0.5时,曲线过时,曲线过P2点,且切矢点,且切矢量等于量等于P3P1。 在这三个设定的条在这三个设定的条件下,构造的抛物线段件下,构造的抛物线段如图如图5.3所示。所示。 P1P2P3QAP2t=0t=0.5t=1图图5.3 5.3 过过3 3点定义的二次曲线点定义的二次曲线 图中的数据是这样的:图中的数据是这样的:A点为点为P1P3的中点,的中点,AP2 = P2Q,抛物线在抛物线在P1点处与点处与P1Q相切,在相切,在P3点处与点处与QP3相切,曲线相切,曲线在在P2点处的切矢点处的

40、切矢P2与与P1P3平行。平行。 根据以上设定的条件,可以列出三个方程:根据以上设定的条件,可以列出三个方程: t = 0:P(0)= A1 = P1 t = 1:P(1)= A1A2十十A3 = P3 (5-2) t = 0.5;P( (0.5) )= A10.5A20.25A3 = P2 解以上三个联立方程:解以上三个联立方程: A1 = P1 P3 = A1 + A2 + A3 = P1A2 + A3 A2 = P3P1A3 P2 = A1 + 0.5A2 + 0.25A3 亦即:亦即:4P2 = 4A1 + 2A2 + A3 = 4 P1 + 2(P3P1A3) + A3 = 2P1

41、+ 2P3 A3 A3 = 2P1 + 2P3 4P2 以上式回代到以上式回代到 A2 = P3 P1 A3中,得:中,得: A2 = 4P2 P3 3P1 所以,通过解联立方程,得到的三个系数所以,通过解联立方程,得到的三个系数A1,A2,A3分别为:分别为: A1 = P1 A2 = 4P2P33P1 (5-3) A3 = 2P12P34P2 把求出的该三个系数的值,代入到抛物线的表达式把求出的该三个系数的值,代入到抛物线的表达式( (5-1)中,可得:中,可得: P(t)= A1 + A2t + A3t2 = P1 +(4P2 P3 3P1)t + (2P12P3 4P2)t2 = (2

42、t2 3t + 1)P1 +(4t 4t2)P2 + (2t2 t) P3 (5-4) ( (0t1) ) 可把式可把式(5-4)改写成矩阵形式为:改写成矩阵形式为:001143242321PPP P(t) = t2 t 1(5-5) 以上推导求出的算式,即为我们所要求的过不在一直以上推导求出的算式,即为我们所要求的过不在一直线上的三点:线上的三点:P1( (x1, ,y1) ),P2( (x2, ,y2) )和和P3( (x3, ,y3) )的抛物线的抛物线方程。这时根据参变量方程。这时根据参变量t的取值,我们就可以一一计算出的取值,我们就可以一一计算出位于曲线上的数据点,然后顺次连线绘出图

43、形。位于曲线上的数据点,然后顺次连线绘出图形。 5.2.2 二次插值样条曲线的加权合成二次插值样条曲线的加权合成 设有一离散型值点列设有一离散型值点列Pi( (i = 1, 2, , ,n) ),我们可以按,我们可以按式式(5-5)每经过相邻三点作一段抛物线,由于有每经过相邻三点作一段抛物线,由于有n个型值点,个型值点,所以像这样的抛物线段一共可以作出所以像这样的抛物线段一共可以作出n2条。如图条。如图5.4所示。所示。 P1P2P3P4P5Pn-2Pn-1Pn图图5.4 5.4 产生产生n n22段抛物线段抛物线 在这在这n2条抛物线段中,第条抛物线段中,第i条抛物线段为经过条抛物线段为经过

44、Pi,Pi+1,Pi+2三点,所以它的表达式应为:三点,所以它的表达式应为: Si(ti)=(2ti23ti+1)Pi+(4ti4ti2)Pi+1+(2ti2ti)Pi+2 (0ti1) (5-7) 同理,第同理,第i+1条抛物线段为经条抛物线段为经Pi+1,Pi+2和和Pi+3三点,所以它的三点,所以它的表达式为:表达式为: Si+1(ti+1)=(2ti+123ti+1+1)Pi+1+(4ti+14ti+12)Pi+2+(2ti+12ti+1)Pi+3 (0ti1) (5-8) 经过四点所画出经过四点所画出的两条抛物线段的两条抛物线段Si(ti)和和Si+1(ti+1)的图形如图的图形如图

45、5.5所示:所示: PiPi+1Pi+2Pi+3SiSi+1图图5.5 5.5 S Si i和和S Si i+1+1 一般说来,每两段曲线之间的搭接区间,两条抛物线一般说来,每两段曲线之间的搭接区间,两条抛物线是不可能重合的。例如图是不可能重合的。例如图5.5中,中, Si和和Si+1两条抛物线,它两条抛物线,它们在们在Pi+1和和Pi+2两点之间为搭接区间,在这区间内,两点之间为搭接区间,在这区间内,Si和和si+1不太有可能会自然地重合成一条曲线。不太有可能会自然地重合成一条曲线。 显然,对于拟合曲线来说,整个型值点列必须只能用显然,对于拟合曲线来说,整个型值点列必须只能用一条光滑的曲线连

46、接起来。为了做到这一点,在一条光滑的曲线连接起来。为了做到这一点,在Si和和si+1这这样两条曲线的共同区间内,必须有一个办法让它们按照一样两条曲线的共同区间内,必须有一个办法让它们按照一个一定的法则结合成一条曲线,这结合的办法就是加权合个一定的法则结合成一条曲线,这结合的办法就是加权合成。成。 在加权合成的过程中,我们首先要选择两个合适的权在加权合成的过程中,我们首先要选择两个合适的权函数。如果我们在这里选择的两个权函数分别为函数。如果我们在这里选择的两个权函数分别为f(T)和和g(T),加权合成后的曲线为,加权合成后的曲线为Pi+1(t),则:,则: Pi+1(t) = f(T)Si(ti

47、)+ + g(T)Si+1(ti+1) 在抛物样条曲线中,我们选择的权函数在抛物样条曲线中,我们选择的权函数f(T)和和g(T)是是简单的一次函数,且它们之间存在有互补性。它们分别简单的一次函数,且它们之间存在有互补性。它们分别为:为: f(T)= lT g(T) = T (OT1) 这样,式:这样,式: Pi+1(t) = f(T)Si(ti) g(T)Si+1(ti+1)即可改写为:即可改写为: Pi+1(t) =(1T)Si(ti) TSi+1(ti+1) (5-9) 在表达式(在表达式(5-9)中,包含了三个参变量,即:)中,包含了三个参变量,即:T、ti和和ti+1。假如这三个参变量

48、不加以统一,则接下去的工作。假如这三个参变量不加以统一,则接下去的工作是无法进行的,所以我们首先要统一式中的参变量。是无法进行的,所以我们首先要统一式中的参变量。 对于曲线段对于曲线段Si(ti),参变量,参变量ti的取值范围为:的取值范围为:0ti1,但曲线段但曲线段Si(ti)与曲线段与曲线段Si+1(ti+1)搭接的部分是原曲线段的搭接的部分是原曲线段的后半截,即是从点后半截,即是从点Pi+1到到Pi+2之间的区间,在这个区间内,之间的区间,在这个区间内,参变量的取值范围应为:参变量的取值范围应为:0.5ti1。 同理,对于曲线段同理,对于曲线段Si+1(ti+1),在点,在点Pi+1到

49、到Pi+2之间的区间之间的区间内,其参变量内,其参变量ti+1的取值范围应为:的取值范围应为:0ti0.5。 在权函数在权函数f( (T) )和和g( (T) )中,变量中,变量T的取值范围定为:的取值范围定为:0T1。 为了统一式为了统一式( (5-9)中的三个参变量:中的三个参变量:T、ti和和ti+1,我们选,我们选择择t作为统一后的参变量,把原有的三个参变量作为统一后的参变量,把原有的三个参变量T、ti和和ti+1均均化成唯一含有化成唯一含有t的形式,并要给的形式,并要给t规定一个合适的取值范围。规定一个合适的取值范围。假如我们使假如我们使t的取值范围为:的取值范围为:0t0.5,则上

50、面的三个参变,则上面的三个参变量可统一形式为:量可统一形式为: T = 2t ti = 0.5t 0t0.5 ti+1 = t 于是,原式于是,原式(5-9)可根据新的参变量可根据新的参变量t改写成如下这样的形改写成如下这样的形式:式: Pi+1(t) =(1 2t)Si(t + 0.5)2tSi+1(t) (5-10) 其中:其中: 12t = f(T) 2t = g(T) Si(t0.5)=(2t2t)Pi+(14t2)Pi+1+(2t2t)Pi+2 Si+1( (t) )=( (2t23t1) )Pi+1+(+(4t4t2) )Pi+2+(+(2t2t) )Pi+3 把以上四式代入式(把

51、以上四式代入式(5-10),展开、整理后可得:),展开、整理后可得: Pi+1(t) =(4t3 + 4t2 t)Pi+(13t310t2 +1)Pi+1 +(12t3 + 8t2t)Pi+2+(4t3 2t2)Pi+3 (i = 1,2, n3) ( (0t0.5) ) ( (5-11) ) 式式( (5-11)的实质是:表达了每相邻的四个点可以决定的实质是:表达了每相邻的四个点可以决定中间的一段抛物样条曲线。见图中间的一段抛物样条曲线。见图5.6所示。所示。 PiPi+1Pi+2Pi+3Pi+1(t)图图5.6 45.6 4个点决定中间的一段样条曲线个点决定中间的一段样条曲线 假如一个离散

52、点列假如一个离散点列Pi具有具有n个型值点,即个型值点,即i=1,2,n。那么根据式。那么根据式( (5-11),可以加权合成后生成,可以加权合成后生成n3段抛物样段抛物样条曲线。即式条曲线。即式( (5-11)中的中的i的取值范围为:的取值范围为:i1n3。 5.2.3 二次插值样条曲线的端点条件二次插值样条曲线的端点条件 上面已经说到,在全部点列上面已经说到,在全部点列Pi(i=1,2,n)中,我中,我们只能得到们只能得到n3段曲线。但段曲线。但n个型值点之间应有个型值点之间应有n1个区段。个区段。亦即,按照式亦即,按照式( (5-11)产生的曲线段不足以生成产生的曲线段不足以生成n1段曲

53、线,段曲线,因其点列的首、尾两段曲线因其点列的首、尾两段曲线P1P2和和Pn1Pn段,由于缺乏连段,由于缺乏连续相邻的四点这样的条件而无法产生。续相邻的四点这样的条件而无法产生。 为了要产生首尾两段曲线,一个直接的想法就是在原为了要产生首尾两段曲线,一个直接的想法就是在原点列的两端各加一个辅助点点列的两端各加一个辅助点P0和和Pn+1,如图,如图5.8所示。所示。 P0P1P2Pn-1PnPn+1图图5.8 5.8 两端加点两端加点 但是,余下的问题是这但是,余下的问题是这P0和和Pn+1两点是如何加上去的,两点是如何加上去的,它必须依据什么原则,这就是所谓的它必须依据什么原则,这就是所谓的“

54、端点条件端点条件”。在这。在这里,我们仅介绍常用的三种方法:里,我们仅介绍常用的三种方法: 已知两端的切矢已知两端的切矢P1和和Pn 在前面我们已经说过,在由在前面我们已经说过,在由P1、P2、P3三点所确定的抛三点所确定的抛物线中,过物线中,过P2点曲线的切矢点曲线的切矢 P 2 = P3P1,即:,即:P1 = P3P 2 这样,在抛物样条曲线中,当条件给出了两端的切矢这样,在抛物样条曲线中,当条件给出了两端的切矢P1和和Pn之后,根据上面的原理可得:之后,根据上面的原理可得: P1 = P2P0 P0 = P2P1 Pn = Pn+1Pn1 Pn+1 = Pn1+ Pn即可以确定辅助点即

55、可以确定辅助点P0 和和Pn+1的坐标位置。的坐标位置。 这种端点的情况,一般适用于所求的曲线要和已经存这种端点的情况,一般适用于所求的曲线要和已经存在的曲线或直线相连接。在的曲线或直线相连接。 自由端条件自由端条件 另一种补点的方法的原理比较简单,它让所补之点另一种补点的方法的原理比较简单,它让所补之点P0 和和Pn+1与原两端点与原两端点P1 和和Pn分别重合,即:分别重合,即: P0 = P1 Pn+1 = Pn 这样的补点方法称为自由端条件,这种方法一般适用于这样的补点方法称为自由端条件,这种方法一般适用于对曲线的两端没有什么特殊的要求。对曲线的两端没有什么特殊的要求。 形成封闭曲线形

56、成封闭曲线 为了在为了在n个型值点之间形成封闭曲线,那末就要生成个型值点之间形成封闭曲线,那末就要生成n段段曲线段,而不是原来的曲线段,而不是原来的n1段。所以在补点工作中要加三个段。所以在补点工作中要加三个点,首先让首尾两点重合,然后各向前后延长一点,即:点,首先让首尾两点重合,然后各向前后延长一点,即: Pn+1 = P1 P0 = Pn Pn+2 = P2 上述由加权合成推导的抛物样条曲线是由若干个曲线上述由加权合成推导的抛物样条曲线是由若干个曲线段组成的,每两个相邻的型值点之间形成一段曲线,每相段组成的,每两个相邻的型值点之间形成一段曲线,每相邻的两段曲线在型值点处相接,并且一阶导数相

57、等,因此邻的两段曲线在型值点处相接,并且一阶导数相等,因此抛物样条曲线达到抛物样条曲线达到C1连续。连续。 5.2.4 二次插值样条曲线的二次插值样条曲线的性质性质 抛物样条曲线的算法程序如下:抛物样条曲线的算法程序如下: void parspl(int p2,int n,int k,int e) /P为型值点的坐标数组,为型值点的坐标数组,n为型值点数,为型值点数,k为插值数,即为插值数,即 是把参变量是把参变量t区间细分的份数。区间细分的份数。 int x,y,i,j,m=n; float t1,t2,t3,t,a,b,c,d; if(e=1)/自由端自由端 p00 = p10;p01 =

58、 p11; pn+10 = pn0;pn+11 = pn1;else /画封闭曲线画封闭曲线 p00 = pn0;p01 = pn1; pm0 = p10;pm1 = p11; pm+10 = p20;pm+11 = p21;t0.5k;Moveto(p10, p11); for(i=0;im1;i+) for(j1;jk;j+) t1j*t;t2t1*t1;t3t2*t1; a4.0*t2t14.0*t3; b1.010.0*t212.0*t3; ct1+8.0*t212.0*t3; d4.0*t32.0*t2; xa*pi0+b*pi+10+c*pi+20+d*pi+30; ya*pi1+

59、b*pi+11+c*pi+21+d*pi+31; lineto(x, y); lineto(pi+20, pi+21); 5.3 三次插值样条曲线三次插值样条曲线 插值样条曲线大多用来建立物体运动路径或提供实体插值样条曲线大多用来建立物体运动路径或提供实体表示方法,有时也可用来设计物体形状。三次插值样条曲表示方法,有时也可用来设计物体形状。三次插值样条曲线在灵活性和计算速度之间提供了一个合理的折中方案。线在灵活性和计算速度之间提供了一个合理的折中方案。与更高次样条相比,三次插值样条只需较少的计算和存储,与更高次样条相比,三次插值样条只需较少的计算和存储,且较稳定。与低次插值样条相比,三次插值样

60、条在模拟任且较稳定。与低次插值样条相比,三次插值样条在模拟任意形状时显得更灵活。意形状时显得更灵活。 三次插值样条曲线由分段的三次多项式来描述。假如三次插值样条曲线由分段的三次多项式来描述。假如我们设其参变量为我们设其参变量为t,则分段三次插值样条曲线表达式的一,则分段三次插值样条曲线表达式的一般形式可以写成:般形式可以写成: P(t)= B1B2tB3t2十十B4t3 (0ttm) (5-13)其中的其中的P(ti)=x(ti) y(ti) z(ti),可以看作是插值样条曲线上某可以看作是插值样条曲线上某一点的位置向量,一点的位置向量,ti是该点相应的参变量,它的三个分量:是该点相应的参变量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论