C# C语言中的三维数据插值#
我正在寻找一个简单的C函数来插值我的3D数据。 已经给出了一个包含大约100-150个数据集和3个双值的列表C# C语言中的三维数据插值#,c#,interpolation,C#,Interpolation,我正在寻找一个简单的C函数来插值我的3D数据。 已经给出了一个包含大约100-150个数据集和3个双值的列表 -25.000000 -0.770568 2.444945 -20.000000 -0.726583 2.467809 -15.000000 -0.723274 2.484167 -10.000000 -0.723114 2.506445 and so on... 由这些值创建的图表通常如下所示,我不确定这是否算作分散的或仍然是网格化的数据 最后,我想交出两个
-25.000000 -0.770568 2.444945
-20.000000 -0.726583 2.467809
-15.000000 -0.723274 2.484167
-10.000000 -0.723114 2.506445
and so on...
由这些值创建的图表通常如下所示,我不确定这是否算作分散的或仍然是网格化的数据
最后,我想交出两个双数值,然后从插值函数中得到第三个。它不应该使曲面变平,它仍然应该通过所有给定的数据点
由于我没有时间研究所有可能的算法,也没有数学背景,我有点被各种可能的方法所淹没了:克里格法、德洛尼三角剖分法、NURBs以及更多
除此之外,我在网上找到的大多数解决方案要么是针对另一种语言的,要么是过时的,要么是按时间收费的(例如ilnumerics,仍然不确定他们是否有解决方案)
在matlab中,存在一个griddata函数,它正好可以实现这一点(据我所知,它基于克里格算法),但在这种情况下,C#对我来说是强制性的
感谢您的帮助,欢迎您提出批评和建议。您可能会从Unity3dphew那里窃取逻辑,这对我来说似乎是在未知领域更深入地挖掘……好吧,经过大量研究之后,我似乎应该使用克里格法(例如Ilnumerics已经测试过的实现)或Delauney三角测量法。人们时不时地推荐NURBs,但仍然不知道如何为我的任务实现这样的解决方案。你是如何解决这个问题的?我也有同样的问题。谢谢