对凸包在曲面上创建的点的值进行插值

问题描述

我有一些3D点,例如[x,y,z]和它们的值,例如[Bx,By,Bz]。这些点的凸包由convhullconvexHull

生成

convex hull

现在,我想为凸包上的N个新点插值三角形顶点的值。有什么方法可以做到这一点?

解决方法

假设给定点为p=(x,y,z),并且您发现它位于三角形p1=(x1,y1,z1)p2=(x2,y2,z2)p3=(x3,y3,z3)中(在凸包上)。现在,如果我理解正确,我们想计算三个非负实数值abc,这样a * p1 + b * p2 + c * p3 = pa + 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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...