【发布时间】:2014-04-21 22:04:28
【问题描述】:
我有一组二维点。 我要找:
- 包围所有点的最小三角形
- 包围所有点的最小圆。
有什么算法可以做到这一点吗? 我遇到了 Convex Hull 来为一组点拟合凸多边形。但我想要一个圆形和三角形。
提前致谢
【问题讨论】:
标签: algorithm geometry computational-geometry
我有一组二维点。 我要找:
有什么算法可以做到这一点吗? 我遇到了 Convex Hull 来为一组点拟合凸多边形。但我想要一个圆形和三角形。
提前致谢
【问题讨论】:
标签: algorithm geometry computational-geometry
对于这两个问题都有 O(n) 算法,但它们并不简单。请参阅 http://en.wikipedia.org/wiki/Smallest-circle_problem 和 http://prografix.narod.ru/source/orourke1986.pdf。计算一个轴对齐的边界框,或者将一个圆或等边三角形的中心放在凸包坐标的平均值上会容易得多。这可能是思考您的真正需求或查找库实现的好时机。
【讨论】:
如果您指的是最小的区域,那么以下算法可能很有用。
线性(即 O(n))算法的实现,用于计算在欧几里得 2D 空间中包含给定点集的最小面积三角形,在以下 open access science 中描述注意:
哦。 Parvu 和 D. Gilbert,线性最小面积包围三角形算法的实现,计算和应用数学,Springer,第 1-16 页,2014 年 11 月。
本科学笔记仅对以下论文中最初介绍的算法进行了详细描述:
J。 O'Rourke、A. Aggarwal、S. Maddila 和 M. Baldwin,寻找最小封闭三角形的最佳算法,算法杂志,卷。 7,没有。 2,第 258–269 页,1986 年 6 月。
免责声明:我是这篇科学笔记的作者之一。
该算法的 C++ 实现可在以下地址获得:
https://github.com/IceRage/minimal-area-triangle
并将包含在 OpenCV 的下一个主要版本 (3.0) 中。
以下论文描述了一个最小面积包围圆算法:
G. Bernd,Fast and Robust Smallest Enclosure Balls,第 7 届年度欧洲算法研讨会 (ESA) 论文集,Springer,第 325-338 页,1999 年。
该算法的 C++实现可通过以下方式获得:
http://www.inf.ethz.ch/personal/gaertner/miniball.html。
【讨论】: