convex-hull相关内容

创建穿过所有给定点的非相交多边形

假设我有一个随机顺序的点数组,我需要找到一个多边形(通过对它们进行排序,使得每个相邻对代表一个边),它通过 所有 点,当然,它的边是不相交的. 我尝试通过选择一个点并将所有点添加到它下方的最终数组中,从左到右排序.然后,添加它上面的所有点,从右到左排序. 有人告诉我,我可以添加一个额外的点并自然地排序以避免自相交.但我无法弄清楚这一点.有什么简单的方法可以做到这一点? 解决方案 ..
发布时间:2022-01-14 15:10:22 其他开发

如何判断一个点是在一条线的右侧还是左侧

我有一组点.我想将它们分成 2 个不同的集合.为此,我选择了两个点(a 和 b)并在它们之间画一条假想线.现在我想把这条线左边的所有点放在一组中,把这条线右边的点放在另一组中. 我如何判断任何给定点 z 是在左边还是在右边?我试图计算 a-z-b – 之间的角度.小于 180 的角度在右侧,大于 180 的角度在左侧.但由于 ArcCos 的定义,计算出的角度总是小于 180°.是否有计算大 ..
发布时间:2022-01-14 14:55:35 C#/.NET

凸包 4 分

我想要一种算法来计算 4 个 2D 点的凸包.我已经研究了广义问题的算法,但我想知道是否有一个简单的解决方案 4 点. 解决方案 取三个点,判断它们的三角形是顺时针还是逆时针:: triangle_ABC= (A.y-B.y)*C.x + (B.x-A.x)*C.y + (A.x*B.y-B.x*A.y) 对于右手坐标系,如果 ABC 逆时针,则此值为正,顺时针为负,如果它们共线则为零 ..

如何判断一个点是在一条直线的右边还是左边

我有一组积分.我想将它们分成 2 个不同的集合.为此,我选择两个点(a 和 b)并在它们之间画一条假想的线.现在我想把这条线左边的所有点放在一组中,把这条线右边的点放在另一组中. 对于任何给定的点 z 我如何判断它是在左边还是右边?我试图计算 a-z-b – 之间的角度.小于 180 度的角在右手边,大于 180 度的角在左手边——但是由于 ArcCos 的定义,计算出的角度总是小于 180 ..
发布时间:2021-12-17 14:30:27 C#/.NET

凸性缺陷 C++ OpenCv

如果你能帮我解决这个问题,我将不胜感激:) 关于这个问题OpenCV 2.X/C++中的cvConvexityDefects?,我有同样的问题.OpenCV的C++包装器没有C版本出现的函数cvConvexityDefects,所以我试着写了自己的版本. 部分代码是(请注意countour和hull都是vector,分别计算: CvSeq* contourPoints;CvSeq* ..
发布时间:2021-12-10 20:56:19 C/C++开发

3D 散点图中的凸包

我使用包“rgl"遵循了有关 3D 可视化的教程 这里 所以我能够用“虹膜"数据绘制一个 3D 散点图,并创建一个围绕 95% 数据点的椭球: library("rgl")数据(虹膜)x 有人知道如何在 rgl 图中绘制这样的凸包吗?是否也可以使用 plot3D 包来做到这一点,因为有一个很棒的教程 这里 我可以用我自己的数据制作一个漂亮的图. 我“只是"一名使用 R 进行科学的生物学 ..
发布时间:2021-11-25 02:26:41 C#

3d 曲面的凸包算法 z = f(x, y)

我有一个由一组三元组 (x_i, y_i, z_i) 给出的 3D 表面,其中 x_i 和 y_i 大致位于网格上,并且每个 (x_i, y_i) 都有一个关联的 z_i 值.典型的网格是 20x20 我需要在给定的容差内找到哪些点属于表面的凸包.我正在寻找一种高效的算法来执行计算(我的客户提供了一个 O(n³) 版本,在 400 点数据集上需要大约 10 秒的时间...) 解决方案 ..
发布时间:2021-11-25 02:16:56 C#

如何在 O(nh) 和 O(nlog(h)) 复杂度中找到帕累托最优点?

任何人都可以提出一种算法来找到帕累托最优点(以形成楼梯),就像 O(n*h) 和 O(n*log(h) 中的图表中给出的那样)) 时间复杂度,其中h 是帕累托最优点的个数? 我使用礼品包装算法来解决这个问题(在 O(n*h) 中),但它只找到凸包类型的楼梯,而错过了那些形成凹角的点. 解决方案 把建议放在一个地方. 想法是使用分而治之的策略.如果我们能在 O(n) 中找到将剩余 ..
发布时间:2021-11-24 22:26:28 C#

SciPy 中带有 QHull 的凸包体积

我正在尝试使用 QHull 的 SciPy 包装器. 根据 QHull 的文档,我应该通过 "FA" 选项以获得总表面积和体积. 这是我得到的……我做错了什么? >分[(494.0, 95.0, 0.0), (494.0, 95.0, 1.0) ... (494.0, 100.0, 4.0), (494.0, 100.0, 5.0)]>船体 = 空间.ConvexHull(pts, ..
发布时间:2021-07-16 20:32:53 Python

3D 中的 Alpha 形状

除了 CGAL python 绑定之外,python 中是否有 3 维的“alpha 形状"函数? 或者,有没有办法将下面的示例扩展到 3D 中? 二维示例:在 matplotlib 中,在散点图中的数据点周围绘制一个平滑的多边形 我目前正在使用这个 ConvexHull 计算体积 示例,但出于我的目的,由于“凸面"约束,体积被夸大了. 谢谢, 解决方案 我编写了一 ..
发布时间:2021-06-10 19:30:36 Python

计算和显示一个 ConvexHull

我正在尝试为python中的一些随机点计算并显示凸包. 这是我当前的代码: 将numpy导入为np随机导入导入matplotlib.pyplot作为plt导入 cv2积分= np.random.rand(25,2)船体 = ConvexHull(点)plt.plot(points[:,0], points[:,1], 'o',color='c')对于 hull.simplices 中的单纯 ..
发布时间:2021-06-01 21:02:17 Python

到凸包的距离

我一直在寻找一种方法来计算到凸壳/多边形的距离,这样,如果该点在壳内,则该距离为正,如果在壳内,则该距离为负.例如,给定船体和一组点,可以计算正/负距离吗? 从scipy.spatial导入 ConvexHull导入matplotlib.pyplot作为plt将numpy导入为np#原始点,船体和测试点points = np.random.rand(30,2)#30个二维随机点船体= Con ..
发布时间:2021-04-30 20:54:25 Python

计算到凸包的距离

我正在使用 ConvexHull 的scipy类为一组点构造一个凸包.我对一种计算新点 P 与凸包的最小距离的方法感兴趣. 在互联网的帮助下,我自己进行了一些微调,我想到了这个公式来计算点 P 或一组点 points 到点的距离.凸包面: np.max(np.dot(self.equations [:,:-1],points.T).T + self.equations [:, -1],a ..
发布时间:2021-04-30 20:54:08 Python

将最大凸包拟合到一组点的内部

我想找到适合于一组点内部的最大凸包.我有一组大致为圆形的点,我想拟合的圆之外有许多离群点.想象一个带有“太阳耀斑"的圆圈...我想适合这个圆圈,而完全不理会耀斑.我尝试了各种适合和剔除策略,但是效果不佳. 我已经搜索了很多,却没有找到解决方案.预先感谢. 解决方案 您需要的概念可能是alpha形状.凸包是alpha形状的子集,用于alpha的极值.Alpha形状使一组比凸包更近的点适 ..
发布时间:2021-04-27 20:32:31 其他开发

从凸包中删除异常值

我想用凸包可视化一些数据集(并从该凸包中获取一些统计信息).但是,每个数据集都包含一些噪声.因此,凸包不仅覆盖了主数据云中的所有点,而且还覆盖了所有离群值,这使得凸包的面积相当大,并且在数据集之间没有很大差异.数据集的示例如下: 因此,我想删除那些离群值.可以使用哪种算法将最小面积凸包拟合到数据集中的n-k个点,其中k设置为对应于给定观察百分比的某个数字? 请注意,图片是示例,实际上我 ..
发布时间:2021-04-23 20:22:18 Python

计算凸包

如何从点集合开始计算凸包? 解决方案 MIConvexHull -https://designengrlab.github.io/MIConvexHull/-是C#中的高性能凸包实现,也支持更高维的凸包.LGPL许可证. ..
发布时间:2021-04-18 18:49:07 C#/.NET