由离散点绘制光滑曲线的方法—五点光滑法
在GIS开发中,我们经常会遇到一些由离散点绘制光滑曲线的问题,比如用不规则三角网生成等值线,我们求出了等值线上的各个点,怎么把这些点连成一条光滑的曲线,就需要用到光滑算法。光滑算法有很多种,比如线性跌代、分段三次多项式插值法(又称五点法),二次多项式加权平均法、张力样条函数法等。本文主要介绍五点法,也是用来光滑等高线的常用方法。
五点法的基本思路如下:
1) 每两个数据点之间建立一条三次多项式曲线方程。
2) 曲线具有连续的一阶导数
3) 各节点的导数是以一点为中心,左右两边各相邻的两个点,一共五个点来确定的。
由条件三,我们可以认为我们已经得到了该曲线在每一个点的一阶导数(方法见后面的介绍),那么在任意两个相邻的离散点之间,我们可以得到下面四个方程:
设曲线方程为y = f(x),已求出的各点的导数为
设
则可由上述方程组求出a、b、c、d的值,即得到两点之间的函数表达式。
下面介绍如何根据一个点的前两点及后两点来确定该点的一阶导数值:
如下图所示:
图中是待一阶导数的点,AB为曲线的切线,由AKIMA条件可得:
既可求出点的一阶导数。
对于第一个点和第二个点以及倒数第二个点及第一个点,采用补点的方法,来求他们的导数,补点采用增量相等的原则来补,举个例子:
P0为第一个点,P1为第二个点,p2为第三点,如果我要求P1的导数,就必须补出A点,这样它的前面才会有两个点。P0和P1的坐标已知,则由:p2p1增量-p1p0增量=p1p0增量-p0A增量可补出A点,同理补出B点,这样P0、p1的一阶导数均可用五点法求出。