从三角剖分推断
Extrapolate from triangulation
假设我们有五个顶点:
X = [0 1;
2 1;
4 1;
1 0;
3 0];
三角剖分:
T = [1 4 2;
4 5 2;
5 3 2];
和顶点上定义的函数值:
Fx = [1;
2;
3;
4;
-5];
然后我们可以很容易地通过重心坐标计算出三角形内任意一点的函数值。对于位于第一个三角形中的点 P = [1 .5]
,重心坐标为 B = [.25 .5 .25]
,因此函数的计算结果为 Fxi = 1/4 + 4/2 + 2/4 = 2.75
.
但是,我很难看出如何推断 这个表面。我们可以找到最近的三角形并从中推断。问题是这会导致函数不连续。考虑例如点P = [2 2]
。根据三角形 1,其值为 -0.5,而根据三角形 3,其值为 9.5。
是否有 "standard" 或普遍接受的方法来从分段线性函数进行推断?任何指向现有 material 的指针也非常感谢。
一种可能是 Shepard 的方法:
https://en.wikipedia.org/wiki/Inverse_distance_weighting
生成的函数对在顶点处定义的输入值进行插值,并且是非线性的,但在其他任何地方都是连续的。
选择 p=2 通常会给出不错的结果。
要寻找的另一种技术是 "Barycentric coordinates for non-convex polygons"。
以下出版物显示(第 8 页等)权重函数如何在多边形之外表现
https://www.in.tu-clausthal.de/fileadmin/homes/techreports/ifi0505hormann.pdf
但是,即使这个解决方案在您给定的三角剖分上也不是分段线性的。
假设我们有五个顶点:
X = [0 1;
2 1;
4 1;
1 0;
3 0];
三角剖分:
T = [1 4 2;
4 5 2;
5 3 2];
和顶点上定义的函数值:
Fx = [1;
2;
3;
4;
-5];
然后我们可以很容易地通过重心坐标计算出三角形内任意一点的函数值。对于位于第一个三角形中的点 P = [1 .5]
,重心坐标为 B = [.25 .5 .25]
,因此函数的计算结果为 Fxi = 1/4 + 4/2 + 2/4 = 2.75
.
但是,我很难看出如何推断 这个表面。我们可以找到最近的三角形并从中推断。问题是这会导致函数不连续。考虑例如点P = [2 2]
。根据三角形 1,其值为 -0.5,而根据三角形 3,其值为 9.5。
是否有 "standard" 或普遍接受的方法来从分段线性函数进行推断?任何指向现有 material 的指针也非常感谢。
一种可能是 Shepard 的方法:
https://en.wikipedia.org/wiki/Inverse_distance_weighting
生成的函数对在顶点处定义的输入值进行插值,并且是非线性的,但在其他任何地方都是连续的。
选择 p=2 通常会给出不错的结果。
要寻找的另一种技术是 "Barycentric coordinates for non-convex polygons"。
以下出版物显示(第 8 页等)权重函数如何在多边形之外表现
https://www.in.tu-clausthal.de/fileadmin/homes/techreports/ifi0505hormann.pdf
但是,即使这个解决方案在您给定的三角剖分上也不是分段线性的。