# Astart **Repository Path**: openwcs/astart ## Basic Information - **Project Name**: Astart - **Description**: 基于A*算法的演示程序 - 🎯 **实时可视化**: 实时显示 A\*算法的搜索过程 - 🗺️ **10 种预设地图**: 包含不同复杂度和特色的地图场景 - 🎨 **炫酷界面**: 深色主题,渐变效果,现代化 UI 设计 - ⚡ **速度控制**: 可调节动画播放速度 - 🖱️ **交互式编辑**: 鼠标绘制墙壁、设置起点终点 - 📊 **详细信息**: 显示算法过程和结果统计 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-05-29 - **Last Updated**: 2025-10-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # A\* 路径寻找算法演示程序 这是一个使用 PyQt5 开发的炫酷 A\*算法可视化演示程序,具有漂亮的界面和丰富的功能。 ## 功能特点 - 🎯 **实时可视化**: 实时显示 A\*算法的搜索过程 - 🗺️ **10 种预设地图**: 包含不同复杂度和特色的地图场景 - 🎨 **炫酷界面**: 深色主题,渐变效果,现代化 UI 设计 - ⚡ **速度控制**: 可调节动画播放速度 - 🖱️ **交互式编辑**: 鼠标绘制墙壁、设置起点终点 - 📊 **详细信息**: 显示算法过程和结果统计 ## 预设地图类型 1. **迷宫** - 使用递归回溯算法生成的复杂迷宫 2. **随机障碍** - 随机分布的障碍物 ![迷宫](images/迷宫.png) 3. **室内房间** - 模拟室内建筑布局 ![室内房间](images/室内房间.png) 4. **山脉地形** - 基于高度图的山脉地形 ![山脉地形](images/山脉地形.png) 5. **河流地形** - 蜿蜒的河流地形 ![河流地形](images/河流地形.png) 6. **城市街道** - 网格状城市街道布局 ![城市街道](images/城市道路.png) 7. **螺旋迷宫** - 螺旋形状的复杂迷宫 ![螺旋迷宫](images/螺旋迷宫.png) 8. **岛屿地形** - 圆形岛屿地形 ![岛屿地形](images/岛屿地形.png) 9. **树形分支** - 树状分支结构 ![树形分支](images/树形分支.png) 10. **十字路口** - 十字交叉路口 ![十字路口](images/十字路口.png) ## 颜色说明 - 🟢 **绿色**: 起点 - 🔴 **红色**: 终点 - ⚫ **深灰**: 墙壁/障碍 - 🔵 **蓝色(透明)**: 已访问节点 - 🟠 **橙色(透明)**: 待访问节点 - 🟡 **黄色**: 最终路径 - ⬜ **浅灰**: 可通行区域 ## 安装要求 ```bash pip install PyQt5==5.15.9 ``` ## 运行程序 ```bash python astar_pathfinding_demo.py ``` ## 使用说明 ### 基本操作 1. **选择预设地图**: 从下拉菜单选择不同的地图类型 2. **设置绘制模式**: - `wall`: 绘制墙壁 - `erase`: 擦除墙壁 - `start`: 设置起点 - `end`: 设置终点 3. **调节速度**: 使用滑块控制动画播放速度 4. **开始寻路**: 点击"开始寻路"按钮开始算法演示 5. **停止/重置**: 可以随时停止或重置当前状态 ### 高级功能 - **实时编辑**: 可以在地图上点击拖拽来绘制自定义地形 - **动画控制**: 支持暂停和继续动画播放 - **路径信息**: 显示找到的路径长度和算法执行信息 ## A\* 算法原理 A\*算法是一种启发式搜索算法,使用以下公式: **F = G + H** - **G**: 从起点到当前节点的实际距离 - **H**: 从当前节点到终点的启发式估计距离(曼哈顿距离) - **F**: 总的评估函数值 算法特点: - 保证找到最短路径(在启发式函数满足一致性条件下) - 比 Dijkstra 算法更高效 - 支持对角线移动 - 实时可视化搜索过程 ## 系统要求 - Python 3.6+ - PyQt5 - Windows/macOS/Linux ## 技术实现 - **UI 框架**: PyQt5 - **多线程**: 使用 QThread 避免界面卡顿 - **图形绘制**: QPainter 实现高性能渲染 - **算法实现**: 标准 A\*算法,支持 8 方向移动 - **地图生成**: 多种算法生成不同类型的地形 ## 开发者信息 这个程序展示了 A\*算法的工作原理,适合: - 算法学习和教学 - 路径规划研究 - 游戏开发参考 - 可视化演示 ## 许可证 MIT License - 可自由使用和修改 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 联系人: UKIOT - 邮箱: ukiot1000@163.com - 项目地址: https://gitee.com/openwcs/astart.git --- ⭐ 如果这个项目对您有帮助,请给它一个星标!