Numpy 我如何找到一个点是位于ConvexHull的内部还是外部?

Numpy 我如何找到一个点是位于ConvexHull的内部还是外部?,numpy,convex-hull,Numpy,Convex Hull,我有numpy中的点数组,我通过(scipy.spatial.converxhull而不是scipy.spatial.Delaunay.convertic_-hull)计算它们的凸包,现在我想知道我是否在数组中添加新点,这个点是否位于点云的凸包内?在纽莫最好的方式是什么 我应该提到,我看到了这一点,但它并没有解决我的问题(因为它使用cipy.spatial.Delaunay.convertic_-hull来计算convercxhull)我知道这个问题很古老,但如果有人像我一样发现它,那么答案如下

我有numpy中的点数组,我通过(scipy.spatial.converxhull而不是scipy.spatial.Delaunay.convertic_-hull)计算它们的凸包,现在我想知道我是否在数组中添加新点,这个点是否位于点云的凸包内?在纽莫最好的方式是什么


我应该提到,我看到了这一点,但它并没有解决我的问题(因为它使用cipy.spatial.Delaunay.convertic_-hull来计算convercxhull)

我知道这个问题很古老,但如果有人像我一样发现它,那么答案如下: 我正在使用scipy1.1.0和python3.6

def isInHull(P,hull):
    '''
    Datermine if the list of points P lies inside the hull
    :return: list
    List of boolean where true means that the point is inside the convex hull
    '''
    A = hull.equations[:,0:-1]
    b = np.transpose(np.array([hull.equations[:,-1]]))
    isInHull = np.all((A @ np.transpose(P)) <= np.tile(-b,(1,len(P))),axis=0)

其中,X是p点的pxn数组,p点构成了应在其上构造凸包的点云。

如果仔细阅读我的问题,您将看到@kkuilla的可能重复项,我将该问题的链接放在这里,并提到该问题并没有解决我的问题。是的,我在标记它之后注意到了这一点。你实际上是在说“这解决了我的问题”。我认为它可能是重复的,因为那个问题解决了你们的问题。它看起来像是另一个问题的大量答案解决了你们的问题(例如使用
scipy.spatial.convxhull
)和你如何找到你的凸包无关。如果你阅读下面的评论,你会发现错误,我已经读了很多遍了,在大多数情况下它都是有效的。但是我发现,如果我选择一个点作为凸包的顶点,它将返回false。知道为什么吗?这是给定值错误:操作数不能与形状(7,)(7,2)一起广播
hull = ConvexHull(X)