问题标签 [concave-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.
geometry - 包围给定点集的边界
我目前使用的算法有点问题。我想让它做一个边界。
以下是当前行为的示例:
这是一个想要行为的 MSPaint 示例:
C# 中 Convex Hull 的当前代码:https ://hastebin.com/dudejesuja.cs
所以这是我的问题:
1)这甚至可能吗?
回复:是的
2)这甚至被称为凸壳吗?(我不这么认为)
R:不,它被称为边界,链接:https ://www.mathworks.com/help/matlab/ref/boundary.html
3)这会比传统的凸包对性能更友好吗?
R:嗯,据我研究,它应该是相同的性能
4)这个算法的例子在伪代码或类似的东西?
R:还没有回答或者我还没有找到解决方案
c++ - 3D 凹壳算法(alpha 形状 3),不能使用 CGAL
有谁知道用于计算 3D 点集的凹壳的 GPL(最好是 MIT)代码。我知道 CGAL 中有执行此操作的功能,但我不能使用 CGAL atm。如果可能的话,在我花时间自己实现之前,MIT 实现会很好,甚至是 GPL 作为概念证明。对一些凹面/阿尔法形状算法的任何解释也有助于更好地理解如何实现这一点。我正在努力寻找 alpha_shapes_3/concave hull 的 c++ 实现。我正在寻找除 CGAL 之外的其他实现或 alpha 形状算法的解释。
谢谢你。
[编辑:] 换一种说法......除了 CGAL 之外还有什么可以做 3D alpha 形状的吗,麻省理工学院会很高兴帮我做这件事,但是一个专门的开源项目也足够了,它是孤立的,不是框架的一部分. 如果不提供任何用于执行此 3D 的算法的信息,也将不胜感激。
julia - 使用 Julia 获取一组点的 alpha 形状(凹壳)
我想使用 Julia 计算一组点的 alpha 形状(甚至只是凹壳)。在其他问题中,他们通过使用包含给定点集的 Delaunay tesselation Boundary在 python 中解决了这个问题。
Julia 中的这个包可以获得 Delaunay 镶嵌 https://github.com/JuliaGeometry/VoronoiDelaunay.jl(虽然我不确定它是否针对 julia v0.7 进行了更新)。我想知道 julia v0.7 是否已经有一个实现可以得到 eh alpha 形状,甚至只是一组点的凹壳。
或者,有没有办法有效地调用 python (scipy.spatial.Delaunay) 来完成这项工作?
matlab - 连接一组点以获得非自相交的非凸多边形
我有一组无序的 2D 点,它们代表建筑物的角落。我需要连接它们以获得建筑物的轮廓。
这些点是通过组合不同个体收集的不同多边形获得的。我的想法是使用这些多边形来按顺序获取点(例如,取最大和最小多边形之间的区域并连接这些点,使其进入该区域)。
我尝试使用最小距离标准并根据角度连接点。但不幸的是,它不起作用。我拥有的一件有用的事情是点顺序正确的许多多边形的原始数据。那么有没有可能与那些多边形进行比较来连接这些点呢?正如我上面提到的,我的教授提出了采用最大和最小多边形并将其之间的区域用作缓冲区的想法。所有的点都会落在这个缓冲区中。但我不确定如何实现这一点。
预期结果是一个代表建筑物平面图的封闭多边形。我有 15 个建筑样本,代码需要适用于所有人。一些建筑物不保留角落之间的直角标准。我附上了我拥有的数据。我拥有的点是通过整合多边形获得的。那么有没有办法在集成之前使用这个多边形(其中的点是按顺序排列的)实际数据
algorithm - 创建点云的最小边界框组合的算法
我有一组二维点。我想为这些点的子集找到一组(可能重叠和任意方向的)边界框,使得每个点位于至少一个框内,每个框包含至少 k 个点,并且框的组合区域为最小化。
我拥有的算法的一个想法是:
- 使用凹壳算法找到点的凹壳。
- 使用凸分解算法找到一组凸包。
- 为每个凸包计算任意方向的最小边界框。
我正在为这个问题寻找其他(可能更适合)算法的列表?
python - 用于在 python 中查找点云边界的 3D alpha 形状
我正在尝试使用 3D alpha 形状算法找到点云的表面。当我计算外接半径时,行列式 a 等于 0,导致错误“在 double_scalars 中除以零”。我该怎么办?非常感谢!这是代码: