问题描述
我有一些3D点,例如[x,y,z]和它们的值,例如[Bx,By,Bz]。这些点的凸包由convhull
或convexHull
现在,我想为凸包上的N个新点插值三角形顶点的值。有什么方法可以做到这一点?
解决方法
假设给定点为p=(x,y,z)
,并且您发现它位于三角形p1=(x1,y1,z1)
,p2=(x2,y2,z2)
和p3=(x3,y3,z3)
中(在凸包上)。现在,如果我理解正确,我们想计算三个非负实数值a
,b
和c
,这样a * p1 + b * p2 + c * p3 = p
和a + b + c = 1
(三角形顶点的线性组合)。它可以由M = [p1;p2;p3]
之类的矩阵与[a b c] * M = p
之类的方程式来定义。因此,[a b c] = p * inv(M)
。您可以为所有其他方面做到这一点。
请注意,如果p
不在三角形内,则求解的[a b c]
将不满足非负性或a + b + c = 1
。