我有一些 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
。
https://stackoverflow.com/questions/64479287/
相关文章:
git - 无法推送到 bitbucket 403 "authentication failed"
reactjs - Stripe 参数_invalid_integer
python - 如何为带有输入的代码编写单元测试 (Python)
docker - 使用 .Net Core 3.1 api (docker) 运行 Heroku 时
reactjs - React craco tailwind postcss 集成
html - 输入类型 "email"在:focus state时变为 "text"