检查圆是否适合未量化的二维空间中的迷宫

问题描述 投票:1回答:1

我是一名高中生,最近参加了一场编码比赛,遇到了这个我不知道如何解决的问题:

给出一个封闭在100x100区域中的迷宫,在所有壁的位置都给定的情况下,确定一个具有给定半径的圆是否可以穿过迷宫。墙将定义为连接空间中两个点的线,并且将为您提供圆的起点和终点。圆必须以其中心在起点处开始并触摸目标点,圆才能成功地穿过迷宫。最多将有20面墙。圆的半径和壁的位置可以是“任意”精确的。 (在这种情况下,“任意”仅表示在极小的范围内-假设小数点后最多10位)。

这里是一个例子。如果这是输入:

Radius = 2.8
Start = (5,5), Destination = (95,95)
Walls (a wall connects each pair of points):
(20,0) to (27.5,22.6)
(27.5,22.6) to (55.1,35.5)
(55.1,35.5) to (80.3,80,4)
(80.3,80,4) to (95,63.9)
(1.7,25.8) to (17.5,53.2)
(17.5,53.2) to (56.4,69)
(56.4,69) to (67.9,90.6)
(85.6,98.94512) to (87.3,92.5)

然后,这(在desmos上制成)就是迷宫的样子(蓝色圆圈只是为了显示圆圈的大小):

“

如果在量化网格中,我将知道如何解决该问题,但是墙壁的确切位置和圆的半径可以任意精确。我曾考虑过使用“右手定则”来查找路径,但我不知道如何在非量化空间中实现该路径(我也不十分熟悉该方法)。

我将如何解决这个问题?有人可以给我指出一个算法,链接,某些伪代码,或者只是可以帮助我了解如何解决此问题的直觉吗?任何帮助表示赞赏。谢谢!

algorithm search 2d maze
1个回答
0
投票

这是一项艰巨的任务,不容易编写代码,但这是一种可行的方法:

© www.soinside.com 2019 - 2024. All rights reserved.