参数样条曲线和曲面
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
插值三次样条函数的矩阵表达式:
yi ( x) = 1 ( x − xi −1 ) ( x − xi −1 ) 2
[
式中xi-1≤x≤xi(i=1,2,…,n)
⎡ 1 ⎢ 0 ⎢ 3 ( x − xi −1 )3 ⎢− 2 ⎢ hi ⎢ 2 ⎢ 3 ⎣ hi
]
0 0 3 hi2 2 − 3 hi
0 1 2 − hi 1 hi2
三次样条函数的m连续性方程
(xi,yi) (x ,y ) i+1 i+1 (xi-1,yi-1)
hi yi+1 − yi ⎤ + ⎥ hi + hi +1 hi+1 ⎦
yi′′( xi− ) = yi′′+1 ( xi+ ), i = 1,2, L, n − 1
mi−1 + 2mi + mi +1 = 3⎢ hi + hi +1 ⎣ hi + hi+1
参数表示例子:
直线
P(t ) = P1 + ( P2 − P1 )t , t ∈ [0,1]
圆
⎡1 − t 2t ⎤ P(t ) = ⎢ , 2 2 ⎥ ⎣1 + t 1 + t ⎦
2
t ∈ [0,1]
参数表示的优点:
1)以满足几何不变性的要求。 2)有更大的自由度来控制曲线、曲面的形状 3)对曲线、曲面进行变换,可直接对其参数方程 进行几何变换。 4)便于处理斜率为无穷大的情形,不会因此而中 断计算。 (5)便于用户把低维空间中曲线、曲面扩展到高 维空间去。 (6)规格化的参数变量t∈[0, 1],使其相应的几 何分量是有界的,而不必用另外的参数去定义边 界。 (7)易于用矢量和矩阵表示几何分量,简化了计 算。
p (t ) = 1
[
t
t2
t3
]
⎡ 1 ⎢ 0 ⎢ ⎢− 3 ⎢ ⎣ 2
0 0 3 −2
0 1 −2 1
0 ⎤ ⎡ p (0) ⎤ 0 ⎥ ⎢ p (1) ⎥ 其中P(t)表示位置矢 ⎥⎢ ⎥ − 1⎥ ⎢ p ′( 0 ) ⎥ 量,P′(t)表示切矢 ⎥⎢ ⎥ 1 ⎦ ⎣ p ′(1) ⎦
由上述样条函数公式可以看出,构造插值三次样条时除已经给定的型值点 外,还必须得到型值点处的切矢。为了计算型值点处的切矢 mi(i=0,1,2,…,n),可以利用前、后二曲线段在型值点处的二阶导数连续的条 件:
曲线曲面的计算机辅助设计源于20世纪60年代的飞机和汽车工业。 1963年美国波音公司的Ferguson提出用于飞机设计的参数三次方程; 1962年法国雷诺汽车公司的Bézier于提出的以逼近为基础的曲线曲面设 计系统UNISURF,此前de Casteljau大约于1959年在法国另一家汽车公司 雪铁龙的CAD系统中有同样的设计,但因为保密的原因而没有公布; 1964年Coons提出了一类布尔和形式的曲面; 1972年,deBoor和Cox分别给出B样条的标准算法; 1975年以后,Riesenfeld等人研究了非均匀B样条曲线曲面,美国锡拉丘 兹大学的 Versprille研究了有理B样条曲线曲面,20世纪80年末、90年代 初,Piegl和Tiller等人对有理B样条曲线曲面进行了深入的研究,并形成非 均匀有理B样条(Non-Uniform Rational B-Spline,简称NURBS); 1991年国际标准组织(ISO)正式颁布了产品数据交换的国际标准STEP, NURBS是工业产品几何定义唯一的一种自由型曲线曲面。
2. 参数样条曲线和曲面
2.1 插值和逼近
给定一组有序的数据点Pi,i=0, 1, …, n(测量 所得,或由设计员给出),要求构造一条曲线 顺序通过这些数据点,称为对这些数据点进行 插值,所构造的曲线称为插值曲线。 某些情况下,测量所得的点本身就很粗糙,要 求严格通过这些就没有什么意义。更合理的提 法是构造一条曲线使之在某种意义下最为接近 给定数据点,称之为对这些数据点的逼近,所 造的曲线称为逼近曲线。 差值和逼近统称为拟合。
将所求系数代入y(x)、y’(x)和y’’(x),得:
( xi − x) 2 ( x − xi −1 ) ( x − xi −1 ) 2 ( xi − x) yi ( x) = mi −1 − mi 2 hi hi2 ( xi − x) 2 [2( x − xi −1 ) + hi ] ( x − xi −1 ) 2 [2( xi − x) + hi ] + yi −1 + yi 3 hi hi3
2.4 曲线曲面的表示
显式表示:y=f(x) 隐式表示:f(x,y)=0 参数表示:P(t)=[x(t), y(t), z(t)]
显式或隐式表示存在的问题:
1)与坐标轴相关; 2)会出现斜率为无穷大的情形(如垂线); 3) 不便于计算机编程。 用隐式表示更容易表示曲面的等值线。
隐式表示的好处
在曲线或曲面的求交中,通过隐式方程容易判断某点 是否落在曲线或曲面上,而参数表示则无此优点。 曲面上参数表示并不能描述曲面间的相互位置,找到它 们之间的整体关系很困难,而隐式表示则较为方便
代入样条函数二阶导数表达式,整理 得: ⎡ hi+1 yi − yi −1 hi hi+1
hi + hi+1 hi
hi +1 ⎧ ⎪λi = h + h i i +1 ⎪ ⎪μ i = 1 − λi 令⎨ ⎡ ⎤ ⎪Ci = 3⎢λi yi − yi −1 + μ i yi +1 − yi ⎥ ⎪ hi hi +1 ⎦ ⎣ ⎪i = 1,2,L, n − 1 ⎩
yi(x)=ai+bix+cix2+dix3 yi+1(x)=ai+1+bi+1x+ci+1x2+di+1x3 mi-1 (xi-1,yi-1) mn (xi,yi) m0 mi (xi+1,yi+1) (x0,y0) 型值点和斜率 mi+1 (xn,yn)
i = 1,2,L, n
将yi(x)代入,得:
yi′ ( x) = mi −1 ( xi − x)(2 xi −1 + xi − 3x) ( x − xi −1 )(2 xi + xi −1 − 3 x) 6( yi − yi −1 ) − mi + ( xi − x)( x − xi −1 ) 2 2 3 hi hi hi
yi′′( x) = −2mi −1
S ( k ) ( x i− ) = S ( k ) ( x i+ )
i=2,3, •••,n-1, k=0,1,2
S(x)=ai+bix+cix2+di x3 i=1,2,…,n S(xi-1)=yi-1 S(xi)=yi S’(xi-1)=ti-1 S’(xi)=ti
则称S(x)为插值三次样条函数;
ti - 1 (xi-1,yi-1) (xi,yi) ti
பைடு நூலகம்
插值三次样条函数有两种常用的表达方式,一种是用型值点处的一阶导数表 示的m关系式;一种是用型值点处二阶导数表示的M关系式。最常用的是m关 关系式 关系式 系式。
用型值点处的一阶导数表示插值三次样条函数―m关系式 给定一组型值点(xi,yi)(i=1,2, ••• ,n),mi为(xi,yi)处的斜率。第i段 样条函数可表示为:
⎧ yi ( xi −1 ) = ai + bi xi −1 + ci xi2−1 + d i xi3−1 = yi −1 ⎪ yi ( xi ) = ai + bi xi + ci xi2 + d i xi3 = yi ⎪ ⎨ yi′( xi −1 ) = bi + 2ci xi −1 + 3d i xi2−1 = mi −1 ⎪ ⎪ yi′( xi ) = bi + 2ci xi + 3d i xi2 = mi ⎩
物理样条的性质
(1)样条在压铁两侧斜率相同,相当于函数一阶连续; (2)样条在压铁两侧曲率相同,相当于函数二阶连续;
三次样条函数的数学描述 在区间[a,b]上给定一个分割 :a=x1<x2<•••<xn=b,则称在区间 [a,b]上满足下列条件的函数S(x)为三次样条函数:
(1)给定一组型值点(xi,yi)(i=1,2, ••• ,n), S(x)满足S( xi )= yi, (2)在每个子区间[xi-1,xi](i=1,2, ••• ,n)上为三次多项式; (3)在整个区间[a,b]上具有直到二阶连续的导数,即在内节点xi处,
yi ( x) = ai + bi x + ci x 2 + d i x 3 ,
i = 1,2,L, n
该段曲线的首端通过(xi-1,yi-1),斜率为mi-1,末端通过(xi,yi), 斜率为mi,样条连续条件可表达为:
⎧ y i ( x i −1 ) = y i − 1 ⎪ y (x ) = y ⎪ i i i ⎨ ⎪ y i′ ( x i −1 ) = m i −1 ⎪ y i′ ( x i ) = m i ⎩
2.2 多项式基
为什么采用参数多项式曲线 1.表示最简单,易于计算函数值和各阶导数值。 2.理论和应用最成熟 插值得到的曲线曲面称为参数多项式曲线曲面。
2.3 三次样条函数(Spline) Schoenberg于1946年提出,国外60年代广泛研究,国内70年代开 始。 样条曲线的物理背景 样条(spline)是富有弹性的细木条或有机玻璃条。早期船舶、 汽车、飞机放样时用压铁压在样条上的一系列型值点上,调 整压铁达到设计要求后绘制其曲线,称为样条曲线y(x)。
2 xi + xi −1 − 3x 2 x + x − 3x 6( yi − yi −1 ) − 2mi i −1 2 i + ( xi + xi −1 − 2 x) 2 3 hi hi hi
式中xi-1≤x≤xi(i=1,2,…,n) 上述公式为 插值三次样条函数的基本公式 。只要求解出型值点处 的斜率mi (i=0,1,2,…,n),就可以应用上述公式计算插值三次样条函 数的函数值、一阶导数和二阶导数。 以(xi-1+hi)代替xi,代入yi(x)的表达式,并按(x-xi-1)的幂次整理成 如下矩阵表达式:
i = 1,2,L, n
令hi = xi − xi −1,解方程组得: ⎧ (mi xi −1 + mi −1 xi ) xi xi −1 yi xi2−1 (3xi − xi −1 ) + yi −1 xi2 ( xi − 3xi −1 ) + ⎪ai = − 2 hi hi3 ⎪ ⎪b = mi −1 xi ( xi + 2 xi −1 ) + mi xi −1 (2 xi + xi −1 ) − 6( yi − yi −1 ) xi xi −1 ⎪ i ⎪ hi2 hi3 ⎨ ⎪ci = − mi ( xi + 2 xi −1 ) + mi −1 (2 xi + xi −1 ) + 3( yi − yi −1 )( xi + xi −1 ) ⎪ hi2 hi3 ⎪ m +m 2( yi − yi −1 ) d i = i 2 i −1 − ⎪ ⎪ hi hi3 ⎩
0 ⎤ y 0 ⎥ ⎡ i −1 ⎤ 1 ⎥ ⎢ yi ⎥ ⎥ − ⎥⎢ hi ⎥ ⎢mi −1 ⎥ 1 ⎥⎢ m ⎥ i ⎦ 2 ⎥⎣ hi ⎦
若令hi=1,t=x-xi-1,0≤t≤1,则得到均匀参数插值三次样条。 1963年美国波音 均匀参数插值三次样条 公司的Ferguson用于飞机设计的参数三次方程即是均匀参数插值三次样条曲线:
得到 λi mi −1 + 2mi + μ i mi +1 = Ci i = 1,2, L , n − 1
三次样条函数的m连续性方程
计入首末点的切矢,共有n+1个未知量mi(i=0,1,2,…,n),但只有n-1个方程,需 要补充两个方程才能求解。指定整条曲线的首末点的端点条件,即可以用追赶 法求解三对角方程组得到各型值点出的切矢。
2.5 数据点的参数化
过三点P0 、P1 和P2 构造参数表示的插值多项式可 以有无数条,这是因为对应地参数t, 在[0, 1] 区间中有无数种取法。即P0 、P1 和P2 可对应不同 的参数值,比如, 1 1 t = 0, t = , t = 1, 或 t = 0 , t = , t = 1, 2 3 其中每个参数值称为节点(knot)。 对于一条插值曲线,型值点 P0 , P1 ,L, Pn 与其参数 域 t ∈ [t 0 , t n ] 内的节点之间有一种对应关系。对于 一组有序的型值点,所确定一种参数分割,称之 这组型值点的参数化。
1 d 2 y / dx 2 由材料力学可知, = R ( x ) 1 + ( dy / dx ) 2
[
]
3/ 2
M ( x) = EI
R(x) — 梁的曲率半径 M(x) —作用在梁上的弯矩 E — 材料的弹性模量I — 梁横截面的惯性矩
在梁弯曲不大的情况下,y´ <<1,简化为:y´´ (x) =M(x) y(x)是x的 三次多项式,这就是插值三次样条函数的物理背景。