在二维空间中寻找分离两组点的多边形算法



我在二维空间中有一组点。这些点有两种不同的类型(比如一些点是黑色的,而其他点是白色的)。我需要找到一个算法来找到一个多边形来分离这两个点的子集。多边形的顶点可以是这两种点中的任意一种。

我试着谷歌,但找不到任何合适的算法。有没有相应的算法?

您的问题不是很清楚,但我认为您只是要求存在。考虑以下算法:

  1. 选择一个特定的颜色,比如黑色
  2. 使用直线将此顶点与所有其他黑色顶点连接。路径上应该没有白色的顶点。
  3. 如果任何白色顶点正好在直线上,则无限绕行。
  4. 在这个由黑色节点组成的"星形"网络周围画一个多边形。

最后一步总是可以完成的,只要你画的多边形非常接近"星形"网络,所以你现在得到的是在2D中分隔黑白点的多边形

最新更新