围绕点的最小凸多边形

时间:2018-06-28 09:23:45

标签: c++ c algorithm math

我得到了一堆2d点。我想找到的是一个特定点周围的最小多边形(由完全封闭的最小点集创建)。我尝试使用凸包和Voronoi,但是它们都不产生我想要的结果,而且我的想法也用光了……

我要找到的是代表点周围最小的凸多边形(绿色)的线(红色),如下图所示:

enter image description here

另一个例子:

enter image description here

任何代码,建议或已知算法将不胜感激...

1 个答案:

答案 0 :(得分:0)

从图中的任何黑色点开始,我们将其称为A。画一条从点A到绿点G的线。现在画一条从点A到任何其他点A1,A2,...的线。如果从顺时针方向看,该行在AG行之后,则忽略它。从所有其他线中选择与AG线形成最小角度的线。现在将点A移至下一个点。重复直到您第二次访问一个点。