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