不点蓝字,我们哪来故事?
大家最近都沉浸在双十一的购物里,
是不是都快忘记了
今天是万圣节呦~
万圣节又叫诸圣节,在每年的11月1日,是西方的传统节日。而万圣节前夜的10月31日是这个节日最热闹的时刻。
传说这一晚,各种鬼怪也会装扮成小孩混入群众之中一起庆祝万圣节的来临。西方国家的小孩也会装扮成各种可爱的鬼怪向逐家逐户地敲门,要求获得糖果,否则就会捣蛋。
Trick or treat?
今天,没给小编糖果的小朋友
打开电脑上的QQ都出现了这个……
想知道这是怎么做的吗?
一起来看看吧!
Python与万圣节
Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
今天,我们就用到Python中最炙手可热的绘图模块——Turtle,也经常被亲切地称为小海龟。
过万圣节嘛,怎么能少得了南瓜灯呢!南瓜灯,也叫杰克灯、杰克灯笼,是圣夜的象征物。
准备工作
其实 turtle 用起来并没有那么复杂,可以看到这些函数和我们人类写字画画是很类似的一个过程,比如 抬起画笔,然后移动画笔,再落下画笔。
了解了turtle的基本用法之后呢,为了烘托气氛,我们可以准备一张恐怖一点的图片当做背景。对了,图片要gif格式的哦!
呀,好像我选的不太恐怖,怪不得没有吓到他们!你们可以选下面这样的。
我们要在精心所选的背景图片上画一个如下图所示的南瓜灯,ps:我画的是个南瓜“怪”,咳咳咳,请忽略我拙劣的画技。
创建项目
打开Python,小编用的是Anaconda里自带的Python,然后新建一个 .py 文件。
在第一行引入画图工具库 :
初始化
首先,我们需要创建一个画布,以及设置背景图片和画笔速度等参数,定义一个函数,代码如下:
其中,turtle.bgpic() 设置或获取背景图片,只支持gif图片,这也是之前选背景图片时我强调要一定要选择gif格式的原因。
turtle.screensize()定义了画布的大小和背景色;turtle.speed()命令设定笔运动的速度;turtle.hideturtle()隐藏画笔的小海龟形状;turtle.bgcolor()是设置背景颜色。
南瓜头轮廓
首先,先把轮廓给画出来,也就是一个大致的形状,同样封装到函数内,代码如下:
turtle.penup()是提起画笔,与pendown()配对使用,pendown()下笔,移动时绘画;turtle.goto(x,y)方法来让海龟沿着绝对坐标进行运动以屏幕中间为原点(0,0),形成四象限的坐标体系;turtle.seth()设置海龟的移动方向;turtle.fd()是向前,只不过turtle默认的初始方向是向正东。turtle.left()逆时针移动;turtle.circle()画圆;turtle.end_fill()将当前位置作为重点,并告知程序关闭填充图形。
效果如下图所示啦!
绘制南瓜枝
南瓜头顶部是有一个枝的,这里定义一个函数去画南瓜枝:
turtle.pensize()是设置画笔的宽度,具体效果如下图所示。另外,一定要注意缩进!注意缩进!注意缩进!重要的事情说三遍,Python 中有严格的代码缩进,否则会报错!
南瓜眼睛
接下来,就到最为关键的一步啦。俗话说,“眼睛是心灵的窗口”,如何把南瓜怪的眼睛画好呢?就靠下面这段代码啦~
Wow!好像都是认识的函数,恭喜你,已经进阶成turtle小能手啦!其实南瓜灯的眼睛和南瓜的外形一样,都是要画一个椭圆。如何画椭圆呢?上面的代码已经展示了,背后的逻辑其实很简单。圆之所以为圆,是由于各边相等,那么如果各边不等就会造成椭圆的效果啦。
南瓜灯的鼻子和嘴巴
最后,就只剩下南瓜灯的鼻子和嘴巴了,鼻子我们可以用一个小三角形绘制。至于嘴巴嘛,当然要突出万圣节的恐怖氛围!哈哈哈……
看了一下,好像又全都是我们的Turtle小能手们都知道的函数,进阶成功!到此为止,我们就可以得到一个完整的“南瓜怪”啦。
怎么得到的?只需要小巫师们轻轻挥动手中的魔法棒,运行一下主函数。
当当当,可怕的南瓜怪就出现了!
Trick or treat?
差点忘了最重要的部分,怎么把它伪装成QQ去捣蛋呢?很简单!只需要将我们刚刚的.py文件转成.exe文件就可以啦!
首先,准备好需要转换的py文件和一张用于做图标的照片,将他们存放于同一个文件夹中,文件的路径全部为英文路径。
然后,在网上将图标转换为.ico格式。
接下来,就是要利用Anaconda的命令窗口Prompt安装pyinstaller插件。
将命令窗口路径切换到需要处理的py文件的路径,使用cd命令来完成,可以参照如下图片。
执行命令 pyinstaller -F -i 1.ico 2.py。
执行完命令后,需要的exe文件就在dist文件夹中啦!
oi万圣节
算法编程弹药库
点个关注不迷路
算法编程oi
领取专属 10元无门槛券
私享最新 技术干货