【发布时间】:2021-09-18 01:05:03
【问题描述】:
我正在使用 scipy.spatial.ConvexHull API 来评估一组点的凸包,并且效果很好。给定以下代码:
p1 = points[11]
hull = ConvexHull(points)
vertices = [points[i] for i in hull.vertices]
如何评估等于p1 的vertices 凸组合的系数(权重)?
非常感谢, 摩西
【问题讨论】:
-
如果
vertices中的点数大于d+1,其中d是维度,那么组合将不是唯一的。 -
一种可能性是搜索顶点 A、B、C 的三元组,使得 p1 包含在三角形 A、B、C 中;然后求解stackoverflow.com/a/2049712/3080723 中描述的两个线性方程组,以使用这三个顶点找到系数。
-
@Stef,有没有一种简单的方法来检查一个点是否包含在三角形中,特别是对于 N 点? Python 实现会更好吗?
-
@Stef,刚刚意识到对于 3D 和更高 D 点,三角形包含是不够的。
-
在维度 2 中,是的,我在之前的评论中给出的链接描述了几种检查点是否在三角形内的方法。在维度
d中,不要搜索三元组;而是搜索 (d+1)-tuple,并检查该点是否包含在此形状内。
标签: math convex-hull convex convex-polygon scipy-spatial