数字测图中曲线光滑的方法
张力样条插值法与曲线的光滑
[1**********]17王安
摘要:在数字测图中,用计算机绘制各种曲线必须采用一定的数学方法。曲线
光滑的数学方法的方法很多,本文讨论张力样条函数差值法。用张力样条函数差值法光滑曲线,与已知点能获得很好的吻合。
关键字:曲线光滑,绘图,GIS
引言 曲线、曲面造型是计算机图形学和计算机辅助几何设计的一项重要内容,主要研究在计算机图像图形系统的环境下对曲线与曲面的表示、设计、显示和分析。在计算机制图中,会经常遇到曲线的光滑处理。曲线的光滑方法有许多,大体有两种类型:一种要求拟合曲线严格通过各离散点;另一种则根据点列的大体趋势按最小二乘法原理来拟和一条曲线,该曲线与离散点有较小偏离。常见的曲线光
[1]
滑方法有线切性抹角法、正轴抛物线加权平均法[2]、斜轴抛物线加权平均法[3]、五点光滑法[4]、张力样条函数插值法[5]等。 张力样条插值法
设已知特征点序列(Xi ,Y i ),i=1,2,3,…,n ,且满足条件X 1
Y i =f(Xi ) i=1,2,3,…,n ,
" 2
同时还要求f (X)-σf(X)必须是连续的,并且在每个区间[Xi ,X i+1](i=1,2,3,…,n-1) 成线性变化,即:
(1)
式中H i =Xi+1-X i 。
式(1)是一个二阶非齐次的常系数性微分方程,它的通解为:
式中的Y 为它对应的齐次方程f " (X)-σ2f(X)=0的通解,即Y=c1e 2x +c2e -2x ,它的一个特解,
为
=aX+b。根据通过每一离散点的初始条件,就可解算出c 1,c 2
和a,b 的值。最后经过整理可得到单值情况下的张力样条函数:
(2)
式中X i ≤X≤Xi+1,H i =Xi+1-X i ,i=1,2,3,…,n ,
因此,只要能够确定各离散点处的二阶导数f " (Xi ) ,这个张力样条函数式便完全确定。为此,可导出内节点关系式。 对上式积分得
(3)
式中X i ≤X≤Xi+1,i=1,2,3,…,n ,。然后,根据f(X+i )=f(X-i ) 要推导出内节点关系式。
(4)
式中:
(5)
其中i=1,2,3,…,n 。这是一个含有n 个未知数
的n-2个线
性方程组。此时必须附加两个方程,即给出两个端点条件,该方程组才有唯一的组解。
一般来说,端点条件应根据实际情况给定。对于单值函数曲线,可以利用首
端三点和末端三点分别建立抛物线方程或圆弧方程,并以它们在首末端点上的切线斜率分别作为张力样条曲线在首末端点上的一阶导数,即f ' (xi )=y' i , f' (xn )=y' n (6) 有时为了简单起见,也可直接分别以首两点的直线斜率和末两点的直线斜率作为张力样条曲张在首末上的一阶导数。当i=1和i=n-1时,分别将(6)式代入(3)式,可得到首末端点上的节点关系式:
(7)
式中:
(8)(9)
至此,可以将由式(4)和(7)联立组成的方程组写成如下矩阵形式
(10)
式(10)是一个对三对角线性方程组,利用条件X 1
为适应多值函数的情况,对张力样条函数采用参数方程表示:
x=X(S) y=Y(S)
并满足条件:
x i =X(Si ) y i =Y(Si )
上式中的X(S)和Y(S)都有张力样条函数,i=1,2,3,…,n 。依照单值函数的情况
可以求出:(11)
式中的S i 为累加弦长,H i 为分段弦长,S 为可变参数。用累加弦长作为参数,则
总可以满足S 1
用X " (Si ) 或Y " (Si ) 代替f " (xi ) 及X ' (Si ) 或Y(Si ) 代替f ' (xi ) ,按式(5),(8),
" "
(9)和(10)分别解算X (Si ) 和Y (Si ) 。 张力样条函数法可以适当地选择张力系数,以便适应地图上各种不同的曲线情况。但与所有的样条函数一样,必须将曲线上的所有特征点同时计算,才能绘出曲线,如在对地图曲线进行交互式编辑时,只修改了曲线上的某一个特征点,这时也必须对所有的特征点进行重新计算。 结束语
张力样条插值法的优点是张力可调,例如在绘制等高线时可以根据不同地区的地貌形态选择不同的张力系数来调节曲线的松紧程度。缺点是计算方法较复杂,要反复计算控制点。因此张力样条插值法的研究方向是简化算法,便于其在AUTOCAD 中的实现。或者是和其他的方法相结合。
参考文献:
[1] 王延亮,王明爽. 新型曲线光滑法——切线抹角法. 测绘通报,2005. [2] 刘岳,梁启章.专题地图制图自动化[M].北京:测绘出版社,1981. [3] 李旺挥, 仲怀.常用曲线的拟合[J]工业技术,1995;(2):8-10
[4] 翟永强, 刘正林 计算机制图中一种新的曲线光滑方法. 计算机工程与应用,2003.
[5] 潘正峰,程效军 数字测图原理与方法。武汉大学出版社(第二版)2009