Algorithm 查找二维多边形的封闭点

Algorithm 查找二维多边形的封闭点,algorithm,Algorithm,我正在构建一个游戏,玩家每次移动1点,并在后面留下一条路径。它们不能穿过自己的路径,当路径完成时,我需要捕获所有封闭的点。我没有太多的数学经验来确定我需要看什么算法,但我想我需要将形状分解成子矩形,然后在每个子矩形中找到包含的点 我被指向凸包算法,在看了一段时间后,它似乎只找到了一组给定点的凸包周长。所以那是行不通的 我还没有找到解决任何问题的算法,所以如果我在寻找算法的发展方向,或者寻找一个可以直接解决问题的算法 由于玩家只能上/下/左/右移动,并且没有对角线,因此多边形(?)的所有顶点将始终

我正在构建一个游戏,玩家每次移动1点,并在后面留下一条路径。它们不能穿过自己的路径,当路径完成时,我需要捕获所有封闭的点。我没有太多的数学经验来确定我需要看什么算法,但我想我需要将形状分解成子矩形,然后在每个子矩形中找到包含的点

我被指向凸包算法,在看了一段时间后,它似乎只找到了一组给定点的凸包周长。所以那是行不通的

我还没有找到解决任何问题的算法,所以如果我在寻找算法的发展方向,或者寻找一个可以直接解决问题的算法

由于玩家只能上/下/左/右移动,并且没有对角线,因此多边形(?)的所有顶点将始终是直角

示例平面:

   0   1   2   3   4
0 [x] [x] [x] [ ] [ ]

1 [x] [o] [x] [ ] [ ]

2 [x] [o] [x] [x] [x]

3 [x] [o] [o] [o] [x]

4 [x] [x] [x] [x] [x]
存储点:(在示例平面上标记为“x”)

目标点:(在示例平面上标记为“o”)

其他示例平面:

   0   1   2   3   4
0 [ ] [x] [x] [x] [ ]

1 [ ] [x] [o] [x] [ ]

2 [x] [x] [o] [x] [x]

3 [x] [o] [o] [o] [x]

4 [x] [x] [x] [x] [x]


   0   1   2   3   4
0 [x] [x] [x] [ ] [ ]

1 [x] [o] [x] [ ] [ ]

2 [x] [x] [x] [x] [x]

3 [ ] [x] [o] [o] [x]

4 [ ] [x] [x] [x] [x]
我建议

  • 首先确定用户点的最高和最低X&Y
  • 对于每个Y,从最小X-1开始扫描到最大X+1
  • 计算您遇到用户点的次数

  • 注意:如果用户绘制水平线,这会有一些问题,请阅读lit了解更多信息。

    @AndrasDeak psuedo代码也受欢迎。我只是使用了一些建议的标签,这些标签可以很好地解决这个问题,并且使用了我所知道的语言。如果我的评论不够直接:不要用一个纯粹的算法问题来垃圾邮件语言标签,这个问题的答案很可能是伪代码。任何对算法设计感兴趣的人都将遵循这个标签。@AndrasDeak谢谢你的建设性意见,我编辑了这个问题以反映你的建议。谢谢你的贡献。
    [
      [1,1],
      [2,1],
      [3,1],
      [3,2],
      [3,3],
    ]
    
       0   1   2   3   4
    0 [ ] [x] [x] [x] [ ]
    
    1 [ ] [x] [o] [x] [ ]
    
    2 [x] [x] [o] [x] [x]
    
    3 [x] [o] [o] [o] [x]
    
    4 [x] [x] [x] [x] [x]
    
    
       0   1   2   3   4
    0 [x] [x] [x] [ ] [ ]
    
    1 [x] [o] [x] [ ] [ ]
    
    2 [x] [x] [x] [x] [x]
    
    3 [ ] [x] [o] [o] [x]
    
    4 [ ] [x] [x] [x] [x]