Possibly all the ways to get loop-finding in graphs wronga day agohttps://www.chiark.greenend.org.uk/~sgtatham/quasiblog/findloop/文章描述了拼图游戏中几种错误的循环检测算法,包括过度标记边的悬边剪枝方法face-dsf算法在平面图上表现完美,但在环面上由于非平凡H1同调而失败,错过了全局循环footpath-dsf算法修复了环面问题,但在环面的特定循环配置上仍有bug最终采用Tarjan的桥查找算法,因为它适用于任何图,而不依赖于拓扑嵌入修正后的循环追踪算法也可以工作,但效率低于Tarjan的方法
Circular Obstacle Pathfinding (2017)16 days agohttps://redblobgames.github.io/circular-obstacle-pathfinding/A*算法可在任意图上找到最优路径,不仅限于网格。它使用基于预估长度的优先队列:实际长度 + 启发式低估值。通过使用冲浪边(双切线)和贴边来将圆形障碍物转换为图。切线可见性图:内部和外部双切线连接圆形障碍物。通过对障碍物进行点到线距离检查来剔除被阻挡的边。处理相切或重叠的圆形障碍物需要对反余弦进行定义域检查。贴边也可能被阻挡;交点决定其可用性。通过应用闵可夫斯基加法进行简化:将移动的圆形视为点,同时扩大障碍物。在A*过程中惰性地生成图以节省时间,使用邻居函数。过滤有尖点的贴边,以保持最优路径旋转的一致性。