【发布时间】:2016-09-02 07:18:38
【问题描述】:
我有 3 个 X、Y 和 Z 数组。每个数组有 8 个元素。现在,对于 (X,Y,Z) 的每种可能组合,我都有一个 V 值。
我正在寻找一个公式,例如V=f(X,Y,Z)。知道如何做到这一点吗?
提前谢谢你,
阿斯特里
【问题讨论】:
标签: function variables 3d formula
我有 3 个 X、Y 和 Z 数组。每个数组有 8 个元素。现在,对于 (X,Y,Z) 的每种可能组合,我都有一个 V 值。
我正在寻找一个公式,例如V=f(X,Y,Z)。知道如何做到这一点吗?
提前谢谢你,
阿斯特里
【问题讨论】:
标签: function variables 3d formula
您有一个在(可能是不均匀的)3D 网格上采样的函数,并且想要在体积内的任意点评估该函数。解决这个问题的一种方法(有人说是最好的)是多元样条评估。 https://en.wikipedia.org/wiki/Multivariate_interpolation
首先,您需要找到哪个长方体包含 (x,y,z) 查询点,然后您需要从最近的点对值进行插值。最简单的方法是使用最近的 8 个点的三线性插值。如果您想要更平滑的表面,可以使用 27 点的二次插值或 64 点的三次插值。
对于三次样条的重复查询,通过预处理样条以生成 Hermite 补丁/体积,您的生活会更轻松一些,其中您的样本点不仅具有函数值,还具有其导数 (∂/∂x, ∂/∂y, ∂/∂z)。这样,您在评估时就不需要为边界编写混乱的代码。
【讨论】: