问题标签 [convex]

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

drawing - 绘制任意凸形状,知道其边长

我有一个值列表,它们是任意凸形(多边形)的边长。我怎样才能画出这个形状?什么算法可以帮助我完成这项任务?

例如,我有一个列表:2、5、2、3。绘图必须如下所示:

在此处输入图像描述

0 投票
1 回答
347 浏览

matlab - MATLAB中的非线性优化

对于两个变量的非线性优化问题,比如 x 和 y,如何检查函数是否平滑,是中等规模还是大规模问题。我应该使用“fmincon”求解器(在 MATLAB 中),因为变量有一个线性约束和界限吗?我需要全局最优值,对于凸函数,局部最优值与全局最优值相同。但我不确定如何检查我的函数的凸性?

我的问题是 Min f (x, y) where x < y and x, y > 0

0 投票
4 回答
5610 浏览

python - Scipy:凸包的质心

如何使用 python 和 scipy 计算凸包的质心?我发现的只是计算面积和体积的方法。

问候,坦率地说。

0 投票
0 回答
212 浏览

matlab - 点集的MATLAB线性分离

所以我有一组点 V,它们是凸多面体的顶点,还有一个单独的点 p。基本上,我想检查 p 是否包含在 V 中。为此,我建立了一个线性程序来检查是否存在一个超平面,使得 V 中的所有点都位于一侧,而 p 位于另一侧,就像这样(使用 YALMIP):

超平面由点 z 的集合定义,使得 z'*x - z0 = 0,这样如果我得到的点 p 的值大于零,并且所有顶点的值都小于零,那么我知道它们是由平面隔开(第二个约束就是问题有界)。这工作正常。但是,现在我想检查是否存在分隔两个点集的超平面,使其包含原点。为此,我简单地设置 z0 = 0,即完全放弃它,得到:

然而,现在,即使对于我知道有解决方案的情况,它也找不到它,我不知道为什么。作为测试,我使用了顶点

和重点

绘制时,它看起来像这里的图片。

所以很明显,应该有一个平面将孤点和包含原点的多面体(多面体的前点和中心点)分开。

我已经尝试过的一件事是将现在位于原点上的多面体的顶点从原点偏移一点(10^-5),这样飞机就不会接触到多面体(尽管 LP 应该允许这样做) ,但这也不起作用。

我很感激任何想法!

0 投票
1 回答
504 浏览

computational-geometry - 如何计算凸多面体和另一个多面体之间的交集?

手头的问题是与 3D 空间内的 2D 增长有关的科学模拟的一部分。2D 形状通过将(三角形)段添加到先前增长的形状来增长。

图片说明

请注意,3D 中的实际段具有厚度,因此,我的代码实际上适用于三角棱镜。

在某一时刻,这些 2D 形状(具有任何相对方向和位置)发生碰撞。

如果其中一个新的三角棱柱与先前插入的线段相交,我只想插入与先前插入的线段不相交的线段的“部分”。如下所示,标记为 T1 和 T2 的段。

墙图

在第一步中,我计算了所有相交边到面。然后,我使用 3D 中的 CGAL Delaunay Triangulation 包对四面体网格中的结果点集进行网格划分。最后一步,我扔掉所有与之前插入的线段相交的四面体。在大多数情况下,这很有效——但我现在确信这个想法由于根本原因而行不通。

有什么更可靠的计算方法?

0 投票
3 回答
1990 浏览

c++ - 具有共线点的礼品包装算法

因此,我根据礼品包装算法的示例编写了以下代码,用于查找一组点的凸包:

这是我确定第三点位于直线哪一侧的函数:

返回负数表示点在一侧,正数在另一侧,0 表示三个点共线。现在,问题是:如何修改上述代码,使其即使在 _shape 中存在共线点时也能正常工作?

0 投票
0 回答
106 浏览

algorithm - 确定凸包 2D 中的像素

我有一些像素已经代表了一个凸包,现在我正在寻找一种方法来计算这些像素以填充凸包。有什么我应该看的算法或想法吗?

0 投票
1 回答
547 浏览

machine-learning - 下面的集合是凸的吗?

比给定集合更接近给定点的点集合,即
{x | ||x - x0|| ≤ ||x - y|| 对于所有 y ∈ S}
其中 S ⊆ R^n

它让我想起了一个欧几里得球,但我不知道如何继续检查它是否是凸的。
(在这种情况下,它是上面使用的 2 范数)。

0 投票
0 回答
31 浏览

c++ - 凸壳橡皮筋的想法 - 只能画 4 条线

我有一个凸包程序,但唯一剩下的问题是它只能捕获图表上的 4 个点。从某种意义上说,如果我要提出第 5 点,它只会替换原来的 4 点中的一个,以保持相同的 4 边限制。想知道我在哪里搞砸了,因为我使用 wikibooks 示例作为我的基础。

https://en.wikibooks.org/wiki/Algorithm_Implementation/Geometry/Convex_hull/Monotone_chain

注意:排序确实有效,因为我已经通过该部分进行了调试,并且它确实捕获了所有点,问题可能在于代码的上/下壳部分,但我不确定什么是错误/遗漏的。只是想换一双眼睛来帮忙。

0 投票
1 回答
227 浏览

c++ - 创建一个较小的凸包算法,可以用 1 个循环完成吗?

我创建了一个可以工作的凸包程序,它能够绘制点和线以及使其具有视觉吸引力所需的一切。我的问题是,有没有一种方法可以设计成只需要一个 for 循环?而不是制作上下船体?似乎无法弄清楚一旦上层船体到达末端/开始较低时我将如何跟踪。