计算机图形学中的拉格朗日插值算法

大家都知道,通过两个点的一次曲线,有且只有一条,通过三个点的二次曲线,有且仅有一条。概括来讲,通过n+1个点的n次曲线,有且仅有一条。那么给定n+1个点,如何确定这个n次方程的n+1个系数呢?即已知这n+1个点的坐标,求x到y的映射。因为这里有n+1个未知数,n+1个等式,我们可以利用矩阵解方程来求解这些系数,但这计算量很大。拉格朗日提出了一个方法,不需要实现求解任何系数即可直接带入运算来求解。简单来讲就是,

。(我们可以理解为表示在结果中占的权重)

但在实际应用中,点的数量可能非常巨大,最后会导致方程次数非常高,所以通常选定3次方程作为上限,然后每次处理4个点。采用这个思想,我们可以建立y与x之间的映射,然后依次求解。但这时候仍然有个问题,每次面对不同的4个点的时候,必须重新去更新的值。

为了解决这个问题,我们给空间在增加一个维度t(事实上我们可以假定t即表示点的顺序),然后分别建立x到t和y到t的映射,即。因为我们每次都是选用的4个点,我们可以每次都给他们指定,这样 的值是不变的,也就是说我们在计算出来后就不必再去更新它了。

 

下面的程序代码是我根据校内教材上的源码修改的,更改了函数接口,并修正了其中的一个边界BUG。

(程序中指定

Code

posted @ 2009-06-07 11:09  Leng  阅读(1072)  评论(0编辑  收藏  举报