【发布时间】:2021-03-11 00:39:41
【问题描述】:
给定一个无向顶点图,我需要找到连接两个特定点的最内层路径。我最初的想法是只使用类似 Dijkstra 的算法来找到最短路径,但是在很多情况下最短路径不是最里面的。这是我想要实现的目标的视觉效果:
最终,我试图根据在我的程序中绘制的墙壁生成“房间”。所以在这张图片中,虚线是我正在绘制的最后一条边,然后它应该找到从顶点 1 到顶点 7 的边路径(遮挡虚线边),这将给我路径 1-2-3-4- 5-6-7。如果我使用当前的解决方案,最短路径将是 1-2-8-6-7,但显然,这不是最里面的路径。
我试图对此进行广泛研究,但似乎找不到答案。我还尝试在每个节点处选择要遍历的最低边角,但这仅适用于沿一个方向行进,因为我目前没有确定它是顺时针还是逆时针遍历节点的方法。值得注意的是,我正在 Lua 中尝试这样做,但也欢迎使用伪代码或类似的高级语言!
如果我能澄清任何事情,请告诉我。
【问题讨论】:
-
首先计算每个有向边的角度 (0-360)。
-
I have no current way of determining whether it traverses clockwise or counterclockwise- 您可能会收到两种不同的解决方案:顺时针和逆时针,两者都是“最内层” -
@DavidEisenstat 是的!
标签: algorithm lua polygon graph-theory