毕业设计(论文)报告纸
K1,K2,......,Kn 则:
1nK??Ki (2.5)
ni?1?平均曲率反映了曲线的总的弯曲程度。
曲率的应用并不仅限于抽象地描述曲线的弯曲程度,有时具有工程意义,例如在本例子中,通过计算地裂缝的弯曲程度,可以对西安地铁的建设有指导意义,具有直接的应用。
2.2 弯曲度计算
弯曲度是描述曲线弯曲程度的另一个参数,它定义为曲线长度与曲线两端点定义的线段长度之比值。如下图所示:
S?L/l
图2 弯曲度概念
抽象地考察线状物体的弯曲度是没有意义的,因为它直接受曲线端点间的直线距离的影响,在实际应用中,弯曲度S并不主要用来描述线状物体的弯曲程度,而是反应曲线的迂回特性,在交通运输中,这种迂回特性无疑将加大运输成本,降低运输效率,且提高运输系统的维护难度。在一个交通网络中,结点对之间通道(曲线)的弯曲度越小越好,弯曲度的大小可以衡量交通的便利性。在本例子中,弯曲度较低的地裂缝比较直,显然比较容易延伸,而弯曲度较高的地裂缝则容易发生塌陷和扭曲。
2.3 曲线插值与曲线光滑
曲线插值是为了确定离散点之外的曲线的位置,以保证能更详细地描述曲线。很多情况下曲线插值是线状物体图形输出的需要,即为了视觉上的逼真和美观,通常要求所输出的曲线是“光滑”的,因此曲线的光滑通常都是与曲线插值放在一起讨论的。曲线插值的要求是要根据线状物体的离散点来确定出一条连续曲线,该曲线必须通过
共 30 页 第 7 页
毕业设计(论文)报告纸
已知的离散点。曲线光滑是所生成的曲线不但是连续的,而且至少其一阶导数、甚至高阶导数也必须是连续的。
曲线插值的基本条件是,已知n个离散点p1,p2,......pn,其坐标为:
(X1,Y1),(X2,Y2),......(Xn,Yn)
2.3.1 线性插值
线性插值就是在离散点的相邻两点间,用直线方程可表示为:
P(?)?Pi(1??)?Pi?1?(i?1,2,.......,n?1)
显然0???1。当??0时,P(0)=Pi;当??1时,P(1)?Pi?1。?从0变化到1, P(?)从Pi沿直线趋于Pi?1。线性插值计算简单,并能保证曲线的连续性,是GIS中使用得最多的曲线插值方法。支持线性插值的根据有两点“一是在线状物体的抽样中,绝大多数情况下是抽取曲线上的特征点,两相邻抽样点之间的曲线段总是近似于直线,与直线的偏差小于给定的值(精度阈值);二是当两点之间曲线的变化情况未知时,以直线来表示比其他任何曲线更为可靠,因为直线可以认为是一切曲线的“均值”。线性插值的明显缺陷是曲线以折线表示,不光滑,视觉效果差。
对n个离散点,原则上可以用n-1次多项式来生成一条光滑曲线,并保证曲线能通过每一个离散点,但是由于计算复杂,结果不稳定,这种方法在空间分析中实际上基本不用。
2.3.2 分段三次多项式插值
1.四值型点插值方法
对离散点序列中的相邻两点(Xi,Yi),(Xi?1,Yi?1)之间的曲线,可以用一个三次多项式表示:
Y?C0?C1X?C2X2?C3X3 (2.6) 求解(2.6)式中的系数Ci?(i?0,1,2,3)需要四个已知条件,除了一直(Xi,Yi),(Xi?1,Yi?1)外,仍需两个已知条件。考虑到曲线的光滑要求,必须保证
(Xi?1,Yi?1)到(Xi,Yi)和(Xi,Yi)到(Xi?1,Yi?1)这两个区间上的曲线在(Xi,Yi)点处具有相
等的一阶导数,因此一个自然的想法就是,人为地设定各已知离散点(Xi,Yi)上的导数Yi?,这样我们就有了四个已知条件:
共 30 页 第 8 页
毕业设计(论文)报告纸
?Yi?C0?C1Xi?C2Xi2?C3Xi3??2??Yi?C1?2C2Xi?3C3Xi?23 (2.7)Y?C?CX?CX?CX?i?101i?12i?13i?1??2?Y?C?2CX?3CX12i?13i?1?i?1可以很方便的解得系数C0,C1,C2,C3。
?确定已知点处的曲线导数Yi的方法较多,比较简单的方法就是令:
?Y?YYi?i?1i?1?tan? (2.8)
Xi?1?Xi?1?(2.8)式的优点是计算极为简单,缺点是Yi的取值显得比较粗糙且与当前点
(Xi,Yi)无关。但是考虑到(Xi,Yi)是(Xi?1,Yi?1)与(Xi?1,Yi?1)之间位移的曲线特征点。
(如有其他特征点应予以采集),那么在事实上这样做亦是可行的。但是该方法仅适
?用于单值曲线的情况,对于多值曲线,由于可能会有??90。的情况出现,而使得Yi的计算取值出现问题。
对于开曲线的情况,曲线端点的导数可以用于其与相邻点的坐标差值来确定。 为了方便地绘制多值曲线(线状物体多表现为多值曲线),(2.6)式可以用参数形式表示为:
23??X?a0?a1??a2??a3??X(?) (2.9) ?23??Y?b0?b1??b2??b3??Y(?)令0???1,则:
X(0)?XiX(1)?Xi?1Y(0)?YiY(1)?Yi?1
相应地,
Xi?1?Xi?1?dx??d?221/2??X?X?(Y?Y)x?xi?i?1i?1i?1i?1 (2.10) ?Yi?1?Yi?1?dy?221/2?d?y?yi??X?X?(Y?Y)i?1i?1i?1i?1?????我们可以得到类似于与(2.10)的两组线性方程组,从而方便地解出曲线系数。 五点光滑法
五点光滑方法是对“四值型点插值法”中当前点导数的解算方法的一种改善,当 共 30 页 第 9 页
毕业设计(论文)报告纸
前点的一阶导数由相邻五点求出的中间点导数而求出。
该方法中假设平面曲线上的五个相邻数据段为,1,2,3,4,5,并设线段,12,23,34,45的斜率分别为k1,k2,k3,k4且有:
Ki?Yi?1?Yi (2.11)
Xi?1?Xi于是当曲线为单值曲线时,对当前点3的斜率t3,可以用对上述四个相邻线段的的斜率的加权平均来求得:
t3?K4?K3K2?K2?K1K3K4?K3?K2?K1 (2.12)
此时若设经过两相邻点(Xi,Yi)和(Xi?1,Yi?1)的三次多项式曲线为:
Y?a0?a1(X?Xi)?a2(X?Xi)2?a3(X?Xi)3 (2.13) 则有已知条件:
X?XiY?Yi?dYY i?dXX?Xi?ti ?dYYi?1?X?Xi?1?ti?1dX可以解得:
?a0?Yi? (2.14) ?a1?ti?2?a2?(3Ki?2ti?ti?1)(Xi?1?Xi)将解得的系数带入(2.14)式,则经过两相邻点(Xi,Yi)和(Xi?1,Yi?1)的三次多项式曲线便可确定下来。
显然,对于开曲线的两个端点,要想用(2.12)式求得其斜率,就必须在端点以外加补两个点。补点可采用下述方法:
设待补点为(X4,Y4),(X5,Y5),它们与前三点应位于同一条抛物线上,这样才能保证补足点保持原曲线的基本定向。设该抛物线方程为:
Y?b0?b1(X?X3)?b2(X?X3)2 (2.15) 再设X5?X3?X4?X2?X3?X1,便可求得待补点坐标,并可解得补足后的线段的斜率满足下述关系:
共 30 页 第 10 页
毕业设计(论文)报告纸
?K3?2K2?K1 (2.16) ??K4?2K3?K2而对多值曲线,对当前点需分别求出其在X和Y两方面的斜率: X方向:
cos?3?m0m?nm0m?n20202020
Y方向:
sin?3?式中,
(2.17)
m0?m2w2?m3w3n0?n2w2?n3w3于是可以得到:
w2?m1m3n4?m4n3w3?m4m1n2?m2n1而:
mi?xi?1?xini?yi?i?yi i?1,2,3,4
设经过两相邻点(Xi,Yi)和(Xi?1,Yi?1)的三次多项式光滑曲线由式(2.9)确定,式中
?为参数。当曲线从(Xi,Yi)到(Xi?1,Yi?1)时,?的值从0变化到1。即:
??0时,X?Xi,Y?Yi,dX ?rcos?i;d?dY?rsin?i;d???1时,X?Xi?1,Y?Yi?1dX?rcos?i?1;d?dY?rsin?i?1;d?r?
?Xi?1?Xi?2?(Yi?1?Yi)2
由此,则可求出式(2.9)式中的各项系数为:
共 30 页 第 11 页