问题标签 [convex-polygon]

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 回答
116 浏览

c - “!”的目的是什么?在“多边形测试中的点”的这段代码中?

多边形测试代码中的点

!in的目的是c = !c;什么?

0 投票
4 回答
1919 浏览

algorithm - 查找凸多边形的最大 y 坐标

我有一个数组V[1,2,....,n],其中数组的每个元素以坐标对 (x,y) 的形式表示凸多边形的一个顶点。

给定V[1]是具有最小 x 坐标的顶点,并且顶点V[1,2,....,n]按逆时针方向排列,如图所示。还假设顶点的 x 坐标都是不同的,顶点的 y 坐标也是如此。 在此处输入图像描述

现在,我想找到具有最大 y 坐标值的顶点。我们都知道朴素的 O(n) 方法,但是有可能在 O(log(n)) 中找到它吗?

我使用V[1]具有最小 x 坐标的顶点的信息在 O(log(n)) 时间内找到具有最大 x 坐标的顶点。但是有可能做到最大y坐标吗?

谢谢您的帮助!

0 投票
0 回答
76 浏览

java - 两个多边形之间的最小距离

我一直致力于实现检测两个凸多边形 P 和 Q 之间的最小距离所需的算法,但我只检测到顶点之间的距离,如何在多边形边缘检测最小距离。

究竟需要什么,原生java可以用边缘做什么来找到最小距离?是否有直接的本地 Java 方法计算边缘上的点以及如何在下面的代码中使用?

0 投票
1 回答
454 浏览

algorithm - 使用凸包算法找到一组点的最佳拟合线的算法

如果一条线最小化了 S 中的点与线之间的距离之和,则该线是平面中点集 S 的最佳拟合。假设凸包算法可用,找到平面中给定点集 S 的最佳拟合线。这是《离散和计算几何》一书中的练习。我试图解决这个问题几个月。我知道如何用微积分和聪明的蛮力来解决它。解决这个问题的分析方法是http://mathworld.wolfram.com/LeastSquaresFittingPerpendicularOffsets.html。我对快速或最佳的解决方案不感兴趣。

0 投票
1 回答
231 浏览

c++ - 多个凸形角连接

凸形状 如上图所示,我有一个不可变的数组结构,其中包含凸形(它们的大小和数量可能会有所不同,但它们始终是凸的且从不重叠)。我想要做的是连接它们之间的角,这些角可以在不重叠任何边缘的情况下连接,如下图所示,蓝线代表连接。

连接的形状

我可用的数据是保存凸形中角位置的数据结构,表示为类似于以下的 Vector 结构:

凸形结构看起来像这样:

我想从函数返回的是一个类似于以下结构的 std::vector:

所以每个链接向量都应该有一个指向它所连接的其他链接向量的指针。

因此,最终函数将具有以下格式:

然后,我想保存所有这些链接,以便在以后的函数中使用,该函数将两个点连接到已经链接的形状,如下所示:

在此处输入图像描述

该函数不应更改已经存在的连接,并且应如下所示:

有人可以帮我解决这个问题吗?

0 投票
2 回答
2468 浏览

matlab - 减少多边形的边数

假设我们有一个简单图形的图像,并且我们知道它是一个多边形,略微扭曲。有没有一种图像处理方式来逼近图形对象的原始参数?

下面的矩阵由代码创建,然后缩小以显示第五个感兴趣的区域:

EnumeratedMask=bwlabel(Zdata<-.06);

对于下一步,我需要ABC/ABCD坐标来跨由这些点进一步定义的线获取 z 轮廓。

0 投票
1 回答
177 浏览

algorithm - 从许多 3D 平面中找到 AABB - 形成一个凸包

我有一些 3D 平面信息。当所有平面连接在一起时,它将形成一个 3D 凸包。

在此处输入图像描述

这是一个输入示例。
每个 3D 平面由平面上的一个点及其法线表示。
所有法线都指向内部:-

问题:如何从中计算AABB?
上述示例的解决方案是((-1,-1,-1),(1,1,1)).

(起初,我想要质心,但我意识到这是一个 Hard 问题。AABB
对我来说应该足够好了。)

我糟糕的解决方案是使用构造实体几何找到所有船体顶点, 然后对它们执行 MIN 和 MAX,但性能太差了。

在实际情况下,我想在两个凸包重叠时找到 3D 包的中心点。
此信息可用于物理引擎中更准确的碰撞响应。

0 投票
0 回答
346 浏览

r - 使用 r 将凹多边形变成凸多边形

我正在尝试使用 r 将凹多边形拆分为凸多边形。我试图弄清楚如何为一个多边形成功地实现这一点,并希望以一种自动化的方式在大量多边形上实现这一点。

到目前为止,我能想到的唯一方法是使用三角剖分将这个形状分解成几个较小的形状,然后将它们组合成一些数量最少的凸多边形。

在此处输入图像描述

在此处输入图像描述

这是我所得到的。是否有一种聪明/有原则的方法将三角形分组为最少数量的组,然后将它们合并,以便最终产品是一组凸多边形?或者有没有更好的方法来解决这个问题?

我很感激帮助。这是shapefile的链接

0 投票
1 回答
42 浏览

algorithm - 如果点未正确对齐,如何检查多边形内是否存在点?

我正在研究一个问题,我们必须找到给定 N 点的凸包并检查多边形中是否存在另一个 P 点。所以我实现了 Jarvis March 礼品包装算法。因此,如果凸包的端点都不是共线的,则它返回具有正确对齐的多边形点的输出。但是在共线的情况下,这些共线点不会以对齐的方式出现。那么,如果这样的多边形没有对齐的端点,我们如何检查点 P 是在内部还是外部?主要是我知道或想到的所有算法都适用于 fr ,我们应该确切地知道哪个点在前,哪个点在后。这种特殊情况有什么方法吗???

示例:如果多边形的点是 {0,0},{1,1},{4,4},{2,2},{3,3},{2,0} 并且点是 {2,1} . 它应该把它当作多边形 {0,0},{1,1},{2,2},{3,3},{4,4},{2,0} 并且它应该返回 {2,1}是多边形。

0 投票
2 回答
1041 浏览

python - Open CV Contours - 将凹多边形拆分为多个凸多边形

我在一个 numpy 数组中有下面的图像

在此处输入图像描述

我想要

  1. 将块分成单独的轮廓或任何坐标表示。

  2. 然后我想将任何凹多边形转换为多个凸多边形。

像这样

在此处输入图像描述

到目前为止,我已经设法用 opencv 将每个块隔离成轮廓......但是有没有一种简单的方法可以将 L 形对象分成两个或多个方形块。如果需要,每个形状的新轮廓可以重叠。

也可能是我有这样的图像,它没有这样的直线。

在此处输入图像描述

我曾经cv2.approxPolyDP画过形状,但它们又是凹的,我需要将它们分开。

任何帮助表示赞赏。