问题标签 [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 投票
1 回答
94 浏览

image - 视野/凸度图

在来自逻辑图像的形状上,我试图从 matlab 形状内的任何点提取视野:

在此处输入图像描述

我尝试了一些涉及测试通过该点的每条线的方法,但它真的很长。(我希望为形状的每个点或至少它的轮廓的每个点都做很多次)

我认为一种更快的方法是通过从考虑的点扩展磁盘来迭代地工作,但我不知道该怎么做。

我怎样才能以有效的方式找到这个视野?

任何想法或解决方案将不胜感激,谢谢。

0 投票
1 回答
2583 浏览

c# - 凹壳算法从伪代码到 C#

我正在尝试将此处描述的算法(第 12 页)从伪代码转换为有效的 C# 代码。该算法描述了如何通过将被认为太长的边缘分解为更小的边缘来将凸包“转换”为凹包。我理解作者提出的一般想法,但在将其转换为工作代码时遇到了麻烦。请看下面我到目前为止得到的代码,包括每个伪代码行开头的注释(//)。我遇到的问题与特定线路无关 - 尽管我确信当前计算“localMaximumDistance”的方法不正确。如果有人对如何解决这个问题有任何指示,我真的很想听听这些。(在伪代码中,这行写着“计算边缘的局部最大距离 d;”

提前感谢您的时间和反馈!:)

0 投票
2 回答
1772 浏览

libgdx - Libgdx 多边形三角剖分

好的,所以我有一个多边形(简单但凹形),我试图将其切割成三角形以使其与另一个多边形相撞。

我知道我的多边形是凹的,所以我决定使用 LibGDX EarClippingTriangulator将它切割成三角形。

所以,使用这段代码,我得到了我的三角形顶点:

但是当我尝试绘制我刚刚制作的那些三角形时,它们只是堆叠在 0,0 坐标中。而且,所有三角形看起来几乎相同是否正常,我的意思是它们都有相同的方向?

我没有找到关于这个用于 libgdx 的 trangulation 的太多信息你能帮忙吗?

(对不起我的英语我是法国人,对不起没有照片,我在这里太年轻了)

编辑:这是我的多边形(CCW)

EDIT2:现在我有足够的点来向您展示多边形

在此处输入图像描述

0 投票
3 回答
503 浏览

java - Java:凸多边形的周长

我有ArrayList一些Point-s。保证点是凸多边形的一部分。

如何计算这个凸多边形的周长?

更新: ArrayList 中的点没有任何顺序

更新 2:所有点都是凸多边形边缘的一部分

0 投票
1 回答
249 浏览

graph - Determining if graph is convex

I am trying to determine whether a line drawn connecting a number of points is convex or not. The points can be plotted on x,y coordinates. Can this be done in a way other than essentially connecting each point to every other point and seeing if all of those lines lie above the curve? Thanks! Here are sample points:

0 投票
1 回答
1151 浏览

c# - Quickhull 点未按正确顺序返回

我实现了在下一页找到的快速外壳代码:

http://www.ahristov.com/tutorial/geometry-games/convex-hull.html

该算法返回凸包的正确点,但它没有以正确的三角顺序返回它们。由于这些点的顺序没有意义,我不能用它们来画线,从而画出船体本身。

例如,当我使用以下几点运行算法时

我希望它们返回的正确顺序是:

相反,快速船体算法会像这样返回它们:

谁能帮帮我吗

0 投票
4 回答
1114 浏览

computational-geometry - 通过球体的联合逼近固体

我有一个 3D 实体,表示为一组多面体凸包的并集。(或单个凸面,如果这会使事情变得更容易。)我想将该实体近似为一组球体的并集,以最小化集合中的球体数量和近似误差的方式。(后一个目标故意含糊不清:任何合理的误差度量都可以。同样,目标组合的方式也悬而未决;可以限制球体的数量或误差度量,或者两者的某些功能可以最小化。我不想把自己指定到角落里。)

近似值不需要完全包含完全包含在原始集合中。每个球体可以具有任意半径。

这感觉就像是 NP 完全问题,并且在任何情况下都不太可能使用精确的方法,所以我假设解决方案在于随机优化领域。感觉 k-means 的某些变体可能适合(将未覆盖的位置分配给它们最近的球体,并改进球体以覆盖其中的一些),但我不确定如何处理多重覆盖的位置,或者如何找到局部的,不一定覆盖所有内容,即使对于单个球体也是最佳的。此外,对于迭代方法而言,效率很重要,而进行 3D 布尔运算不会是高效的。

0 投票
2 回答
1493 浏览

c# - 如何确定多面体是否凸?

我正在寻找一种有效的算法来确定多面体是否是凸的。

我首先检查欧拉特性是否为 2。我还检查了每个面是否都是凸面。但这仍然没有抓住很多案例。

0 投票
2 回答
139 浏览

c++ - 几何舍入问题:简单变换后对象不再凸

我正在制作一个小应用程序来分析几何。在我的程序的一部分中,我使用了一种算法,该算法必须有一个凸对象作为输入。幸运的是,我所有的对象最初都是凸的,但有些几乎没有(见图)。

在我应用一些转换之后,我的算法无法工作(它会产生“无限”长多边形等),我认为这是因为图像中的舍入错误;由于舍入误差(图像非常夸张),圆柱体中的顶部顶点被略微“推入”并且不再凸出。

变形前后的圆柱体

所以我的问题是:有谁知道“稍微凸化”一个物体的方法?这是我尝试实现的一种方法,但它似乎不起作用(或者我实现错误):

谢谢!!我已经安装了 CGAL 和 Boost,所以我可以使用任何这些库函数(我已经这样做了)。

0 投票
1 回答
1549 浏览

scipy - 如何解决这个凸优化?

这很简单,我知道,但我对凸优化知之甚少

问题定义:

  1. 目标函数是 II b - Aw II norm 2
  2. 未知向量 [w1, w2, ..., wn]
  3. 一个数据矩阵 A (mxn),每行有 n 个分量([ai1, ai2, ..., ain]),m 是度量的数量。ai1, ai2, ..., ain 本身是高度相关的

  4. 约束 wi >= 0 且 wi 之和为 1,基本上 wi 可以解释为权重

我可以使用哪个 python 或 matlab 包,也许?