数据结构和算法大都涉及程序的高效执行,算法过程通过良好的算法流程的设计,使得具有较好的时间和空间复杂度。但是这些流程通过文本的代码来表达理解起来比较抽象,如果能够通过动态的可视化过程来演示算法的执行的步骤,对于学习算法的同学,特别是初学者,将会能够对算法的思想的理解更加的具象,对于算法思想的理解的也会更加深入彻底。今天将向大家介绍通过用一些工具和开发库,通过编写动画演示程序来方便对算法的执行流程进行可视化的外在表达。以便于算法程序的教学和理解。
今天向大家介绍通过manim和pygame两个python开发库实现交互式动画展示,以便于教学中可以用算法动态可视化过程来辅以教学过程中讲解,使得算法的讲解过程更加具体生动,可理解性大大增强。很多时候知识的难度是一个方面,如果辅以更加可理解的解释方法和途径,知识的可理解的难度也会大大降低。这里先分享一个自己借助大模型的代码生成功能辅助实现的快速排序演示动画的原型版本(代码还在整理和更新中)。由于生成视频动画需要用到流媒体程序ffmpeg,在windows下需要下载ffmpeg程序包(见参考引文1)然后将其对应的bin目录放到环境变量Path中。执行程序生成动画视频的命令行为:
manim -pql quick_sort_manim.py QuickSortVisualization
对应的脚本代码请参考引文2的链接。生成的视频的目录在相对代码为根目录的子目录\media\videos\quick_sort_manim\480p15下面,如果要控制动画的播放进度,可以通过pygame相关程序去播放视频,并且通过鼠标和键盘事件控制播放或暂停(参考引文3的链接)。最后生成的动画效果请参考引文4链接。后续有进一步的心得体会会将持续更新相关文字说明或代码。欢迎读者提供更多的更好的方法和途径来通过动画展示计算机执行算法或特殊功能函数的过程。
References
Leave a Reply