首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在scipy.spatial.Delaunay中,find_simplex()方法返回什么?

在scipy.spatial.Delaunay中,find_simplex()方法返回什么?
EN

Stack Overflow用户
提问于 2020-10-12 00:03:21
回答 1查看 723关注 0票数 2

我需要找出我的一些观点是在凸包里面还是外面,我用的是这个答案:(在这里输入链接描述)。

但是当我测试它时,返回的数组有点混乱。例如,如果我创建两个相同的数组,使用一个数组创建一个船体,然后测试第二个数组的点是否在该船体中,我得到如下信息:

代码语言:javascript
复制
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是什么呢?它是否位于船体的边界上?但为什么只有两分呢?应该是他们所有人。

如果我稍微修改测试数组:

代码语言:javascript
复制
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,尽管船体和点完全相同。

有人知道如何解释这些结果吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-12 02:07:53

tl;dr:它返回的索引,一个包含点的三角形。如果有多个三角形,它并不总是选择相同的指数。

我想你误解了“它返回:包含每个点的简单指数。三角剖分之外的点得到值-1。”

我的解释是,Delaunay(pts_outer)两个三角形分别用0和1对矩形进行三角剖分。然后hull.find_simplex(pts_inner)重调[0, 0, 1, 1]表示你的前两个点是三角形0,第二个两个点是三角形1。

最后,find_simplex现在告诉您点[5, 5]在三角形1中,这有点奇怪,但这并不是不正确的,因为点[5, 5]是在两个三角形中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64310174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档