我需要找出我的一些点是在凸包内部还是外部,我正在使用这个答案:(在此处输入链接描述)。
但是当我测试它时,返回的数组有点令人困惑。例如,如果我创建两个相同的数组,使用一个数组创建一个船体,然后测试第二个数组的点是否在该船体中,我会得到以下结果:
from scipy.spatial import Delaunay
pts_outer = np.array([[0, 0], [0, 5], [5, 0], [5, 5]])
pts_inner = pts_outer
hull = Delaunay(pts_outer)
hull.find_simplex(pts_inner)
Out[29]: array([0, 0, 1, 1], dtype=int32)
该方法的文档只说它返回:“包含每个点的单纯形的索引。三角剖分之外的点得到值 -1”。
我知道1点在船体内部,-1点在船体外部,但是0是什么?该点是否位于船体边界上?但那为什么只有两分呢?应该是他们所有人。
如果我稍微修改测试数组:
pts_inner = np.array([[0, 0], [0, 5], [5, -1], [5, 5]])
hull.find_simplex(pts_inner)
Out[31]: array([ 0, 0, -1, 0], dtype=int32)
前两个点具有相同的索引,第三个点按计划获得 -1 ,但第四个点由于某种原因变为 0,即使船体和点完全相同。
有谁知道如何解释这些结果?
鸿蒙传说
相关分类