乐趣区

关于前端:python教程入门学习用Python制作迷宫GIF

装置

能够通过 PyPi 装置

或者通过 Git

为什么你须要这个库?

问:我是一个 Python 迷,并且对迷宫的生成和迷宫解决的方法十分感兴趣。我很艳羡他人可能做出生成迷宫的动画。我如何可能用 Python 本人做一个迷宫动画,而后把我的成绩展现给其他人呢?(我晓得 tkinter, pyglet 和 pyqt,然而它们很难公布给他人看)

答:当初,你能够应用库 gifmaz 来做这件事了,它有一些很好的个性:

1、它是纯 Python 编写的,没有第三方依赖,只应用内置模块!(如果你想把动画嵌入图片,那么你须要 PIL,PIL 尽管不是内置模块,然而任何 Python 版都反对 PIL。除此之外再没有其余的依赖了)

2、它运行速度很快,而且几秒钟就能生成优化过的 GIF 图片。每个 GIF 通常都蕴含上千帧,然而 GIF 大小确只有几百 KB。

3、你能够绘制各种各样的迷宫动画,和解迷宫动画。

4、代码都有很好的正文,文档有很好的范例,而且文档很残缺。

这个库的一个教程

首先咱们须要构建一个 GIFSurface 对象(相似 cairo 的 ImageSurface 类),咱们的动画将会画在这个对象上。同时,咱们须要指定图片的大小和可用的色彩数量。所以想学的同学,有必要听一下这位老师的课、支付 python 福利奥,想学的同学能够到梦雅老师的围鑫(同音):前边一组是:mengy , 后边一组是:7762, 把以上两组字母依照先后顺序组合起来即可,她会安顿学习的。

这里 color_depth= 2 意味着调色板中有 2^2= 4 种颜色,bg_color= 0 阐明调色板中的第 0 个色彩被作为背景色。

只有你还没有最初保留图片,你都能够更改设置调色板,你能够这样做

所以图片中能够用的色彩有:黑、白、品红、黑。

而后咱们构建一个环境,生成的动画基于这个环境构建(相似 cairo 的 Context 类)。

而后咱们设置这个动画的控制参数

这些参数的意思是“每 20 步渲染一帧,帧之间间隙 0.05s,调色板中第四个色彩作为透明度通道”。

咱们有了绘制动画的“桌面”,和绘制动画须要的参数,接下来就是理论地画一个迷宫了。

这个语句在图片地方绘制了一个迷宫,而后在四边留了 8 像素的空白,迷宫中每一格在图片中占据 5 像素 * 5 像素的大小。

而后让咱们运行 Prim 的迷宫算法。

其中我加了两个提早帧,以便咱们可能看清楚动画的过程。

实现了!让咱们把这个动画保留到 GIF 文件。

上面是运行后果,大小小于 300K,很赞吧!

当然,你也能够把多个算法整合进一个动画。上面的动画展现了随机深度优先搜索算法和 A * 搜索算法。(这个图片只有 120K)

这个库的原理是什么?

这个库实际上是一个 GIF 的编码库,算法运行过程中,动画帧被编码为 BytesIO 文件。只有在调用 save 办法时,动画才会真正地被存入图片。

退出移动版