分散数据的插值:我该怎么办?

时间:2010-05-25 05:24:20

标签: java interpolation java-3d

我正在使用Java 3D在Java上制作3D图表。它应该能够显示一堆测量值。据测量,我获得的数据是分散的。这意味着我将必须插入缺失的点,以便很好地绘制我的表面。

我还没有研究所有3D-Geometry的东西,我不知道从哪里开始。我的想法是将点三角化为曲面,然后基于三角测量插入缺失点。 (参见this粗略了解我想要实现的目标)

有人有散乱数据插值的经验吗?我的方法是正确的吗?如果是,我需要什么样的数据结构和算法才能对我的点云进行三角测量?

3 个答案:

答案 0 :(得分:2)

如果需要对大型数据不规则数据集进行大量插值(例如,对地面进行轮廓加工),则三角测量非常快。插值是线性和离散的,仅基于您插入的三角形的三个点。 In还支持诸如断行之类的约束,例如想象一个由点定义的地面,包括一条限定山脊或悬崖的线。

Splines在所有输入中提供更平滑的结果,但在较大的数据集上可能会非常慢,并且可能会在间距较小的数据上产生异常结果。您可能还想查找NURBS(一种样条曲面)和Bezier补丁。

答案 1 :(得分:0)

你需要使用插值函数,基本上它将你的数据点作为输入,并为任何(x,y)返回一个z值。

例如,您可以使用样条插值,如apache commons math

中所实现

答案 2 :(得分:0)

如果您不想要三角测量的负担,您可能需要查看krigingradial basis function interpolation