【发布时间】:2016-10-24 03:04:38
【问题描述】:
我在这里需要一些算法思路。我有一大组二维点的数据(约 100k 个条目)作为对象,第三个变量作为平面这一点的“值”。现在我想计算某个给定坐标处的插值点。
到目前为止,我唯一的想法是遍历整个数据集并收集与我要计算的点最近的 4 个点的列表,然后在它们之间进行插值。
如何在多个数据之间插入加权(在这种情况下按点的距离)?所以更接近十字架的点出现在结果中?
在这种情况下,您对如何在给定坐标处获取插值有任何其他想法吗?它应该是相对准确的(但不必是 100%)并且不应该花费很长时间来计算,因为这必须完成大约 10.000 次,我不希望用户等待太久。
关于数据:Points几乎在一个网格中,并且二维Points的值实际上是高度值,因此两个近点的值也几乎相等。
数据存储在HashMap<Vector2f, Float> 中,其中Vector2f 是一个由2 个浮点数组成的简单类。没有任何排序。
【问题讨论】:
-
如果您要计算点,如何获得“与我要计算的点最近的 4 个点的列表”?您对计算的点有一个初始猜测,然后迭代地移动它吗?
-
输出完全取决于使用的方法。这些点是否类似于双参数函数?该功能是否单调?价值观如何传播?这些是完全随机的吗?
-
哦,我好像还不够清楚。我知道坐标。但是所有点都有第三个值,我想在我的已知坐标处计算第三个值(通过在其他点的值之间插值)
-
@CptBartender 这些点几乎在网格中并从输入文件中读取(因此它们后面没有函数)
-
是的,但是这些值背后必须有某种意义......
标签: java math interpolation point