问题标签 [convex-hull]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1753 浏览

qt - QPainter::drawConvexPolgon 有什么意义

从文档:

QPainter提供两种绘画方法QPolygonsdrawPolygondrawConvexPolygon

文档中没有明确说明它们之间的区别。此外,drawConvexPolygon文档状态

如果提供的多边形不是凸的,即它包含至少一个大于 180 度的角,则结果是不确定的。

那么……它是干什么用的?我希望该方法能以某种方式找到我的多边形的凸包并绘制它,但似乎并非如此。

0 投票
1 回答
5075 浏览

opencv - 在 ConvexHull OpenCV 上填充颜色

请大家帮帮我。我有个问题。我从图像中进行凸壳检测。

然后,我在 ConvexHull 边界内的区域上填充颜色时遇到问题。

有没有人可以帮我在 ConvexHull 边界内的区域填充颜色?

请帮助我实现源代码。

我使用 OpenCV 2.3。

这是一个源代码:

0 投票
2 回答
3625 浏览

algorithm - 获取一组二维点的周长

我有一组二维点( x 和 y 的坐标),现在我需要丢弃所有对我没有意义的点,我的意思是我只对这个点的区域感兴趣正在追踪。

简而言之,这

在此处输入图像描述

它应该产生这个

在此处输入图像描述

问题:什么算法可以在这个点上做这种过滤?

0 投票
2 回答
1886 浏览

matlab - 创建许多凸包 MATLAB

我是新来的,这是我的第一篇文章。我想知道是否有办法从 100 个随机点计算所有可能的凸包。我创建了一个正确的代码,但它给了我一个convhull 的错误以及该部分下方的所有内容都无法计算..换句话说,我想知道是否有一种方法可以在 for 循环中使用函数 convhull 而不会出现错误..

这是代码

这是错误

提前致谢

co2ark5

这是在 DAN 的帮助下正确工作的最终代码

0 投票
1 回答
662 浏览

javascript - 凸包 - 单调链算法错误

我正在使用单调链算法围绕一组多边形创建一个凸包。它有时效果很好,但在某些形状上,它会失败。看看这个例子:http: //i.imgur.com/KN40LgV.png

左边是应用算法之前的形状,右边是应用之后的形状。某处似乎有一些小的计算错误,我无法弄清楚。

这是我的源代码(JavaScript)的链接:http: //pastebin.com/GPVm9dQp

这是我用作参考的 Python 实现:http: //pastebin.com/RgMKH3XN

0 投票
1 回答
739 浏览

opencv - 在 OpenCV - 如何将 CvPoint 转换为 CvSeq?

在 OpenCV - 如何将 CvPoint 转换为 CvSeq ?

我有 CvPoints,我想使用 cvconvexhull2 Open Functions - 但它只接受 CvSeq 作为输入。请帮助我进行此转换..

0 投票
1 回答
564 浏览

openlayers - 开放层中的凸包

我正在使用开放层。我有一组几何点。我想找到这些几何点的边界,以便创建轮廓。在网上搜索后,我发现这被称为凸包。那么 openlayers 是否具有对凸包的内置支持?

有一种算法“礼品包装算法”可以做这种事情。但我不清楚如何在 openlayers 中做到这一点?我需要为此编写自己的逻辑吗?

任何帮助将不胜感激。

0 投票
1 回答
1684 浏览

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

我想找到适合一组点内部的最大凸包。我有一组大致为圆形的点,在我想要拟合的圆之外有大量异常点。想象一个带有“太阳耀斑”的圆圈......我想适应这个圆圈并完全忽略耀斑。我尝试了各种适合和剔除策略,但效果不佳。

我已经搜索了很多,但没有找到解决方案。提前致谢。

0 投票
1 回答
2984 浏览

r - 在R中使用data.tables的凸包ggplot

我在这里找到了一个使用 ggplot 和 ddply 绘制凸包形状的好例子:使用 ggplot 在多个 geom_point 组周围绘制轮廓

我想我会尝试类似的东西——创建类似 Ashby Diagram 的东西——来练习 data.table 包:

这里我定义了一个简单的表:

然后我按级别定义船体位置:

所以我的想法是将船体与 dt 合并,以便我最终可以操纵船体以获得 ggplot 的正确形式(如下所示以供参考):

但似乎无论我尝试合并 hulls 和 dt 的任何方式,我都会收到错误消息。例如,merge(hulls,dt) 会产生如脚注 1所示的错误。

这似乎应该很简单,我敢肯定我只是错过了一些明显的东西。非常感谢任何对类似帖子的指导或关于如何为 ggplot 准备船体的想法。或者,如果您认为最好坚持使用 ddply 方法,请告诉我。

示例不需要的输出:

导致一团纵横交错的多边形: 不需要的输出

脚注1:

vecseq(f__, len__, if (allow.cartesian) NULL else as.integer(max(nrow(x), : Join 结果为 60 行;超过 15 = max(nrow(x),nrow(i))) 中的错误. 检查 i 中的重复键值,每个键值都一遍又一遍地加入 x 中的同一组。如果没关系,请尝试包含j和删除by(by-without-by) 以便 j 为每个组运行以避免大分配。如果您确定要继续,请使用 allow.cartesian=TRUE 重新运行。否则,请在 FAQ、Wiki、Stack Overflow 和 datatable-help 中搜索此错误消息以获取建议。

0 投票
1 回答
1097 浏览

java - 在java中合并凸包

我编写了一个 java 程序,它使用分治算法在笛卡尔坐标中找到多边形的凸包。我有一个类 Coord,它有两个“双”字段 X 和 y,而我正在使用该方法的“this”是坐标的集合(集合)。我的方法应该返回多边形的外壳(集合)

我的代码是这样的:

我不明白为什么当我运行程序时,会显示以下消息:

如果你能告诉我我哪里做错了,我会很高兴