我试图直观地展示处理中的一些算法(但实际上,这个问题适用于任何具有 GUI 框架的语言)。我的问题是,一个带有根据每秒帧数更新的绘制循环的程序,如何执行算法并更新它的视觉显示?
一个例子是,如果我将随机值数组显示为条形图。我想使用不同的排序(冒泡排序、快速排序、合并排序)对该数组进行排序。如何通过在新的动画帧中显示每个交换来显示算法的每个步骤?
或者另一个例子是路径查找。我想展示BFS、DFS、A*的步骤,而不仅仅是最终的解决方案路径(所有搜索到的pats)。
我正在寻找的视觉效果的示例可以在有关这些算法的维基百科文章中找到:
http://en.wikipedia.org/wiki/Quicksort
http://en.wikipedia.org/wiki/File:Astar_progress_animation.gif
问题是,当算法完成时,绘制循环仅循环一次,因此用户看不到进度。
我唯一能想到的是有一个“状态”对象,其中包含算法每个步骤的相关值。完成后,循环遍历每个状态并直观地显示它。有没有更好的办法?
小智 1
我认为一种方法(但可能不是最好的方法)是为单独的步骤编写代码,然后使用 sikuli 或其他一些 GUI 脚本来自动输出。
或者只需在 MATLAB 脚本中编写代码,然后使用 + 和 - 按钮查看下一次迭代。
| 归档时间: |
|
| 查看次数: |
2698 次 |
| 最近记录: |