【发布时间】:2022-01-25 04:19:54
【问题描述】:
所以我有一个类似于迷宫的结构,但空间更大。对于结构中的每个节点,我想找到它的所有“邻居”(如果节点在视线内,则节点是邻居,即没有墙挡住它们之间的直线)。
这里有一张小图可以帮助解释我的意思。
- 黑线是墙。
- 红点是节点。
- 蓝线是连接邻居的线(注意没有蓝线与黑线交叉)。
我目前正在实施一种非常幼稚且极其昂贵的蛮力方法。在其中,我检查每个节点组合是否与任何迷宫墙(存储在“边缘”中的墙)相交。
for n1 in nodes:
for n2 in nodes:
if not intersect(n1, n2, edges):
n1.neighbours.append(n2)
n2.neighbours.append(n1)
这适用于像上面的 pexample 这样的小型结构。但我希望它能够扩展到更大的结构。
所以我的问题是,是否有任何方法可以更快/更有效地找到每个节点的所有邻居。
干杯:)
【问题讨论】:
标签: python algorithm path-finding a-star maze