关于万圣节万圣节又称万圣节,是西方传统节日,每年11月1日;而10月31日的万圣节是这个节日最火爆的时刻。在汉语中,万圣节常被误译为万圣节。为了庆祝万圣节的到来,孩子们会装扮成各种可爱的鬼怪,挨家挨户敲门要糖果,否则就捣蛋。同时,据说在这一天晚上,各种鬼魂会装扮成孩子混入人群中庆祝万圣节的到来,而人类则装扮成各种鬼魂,使鬼魂更加和睦。不知从什么时候开始,西方的节日一个接一个地来到中国,情人节、圣诞节、感恩节、万圣节……对于我们这些只知道逃课成天上网的大学生来说,对万圣节的熟悉来自于自然的来源例如wow:WorldofWarcraft或MapleStory:MapleStory,无论是魔兽世界帖子的发布时间还是这款老牌的2DMapleStory游戏,都意味着属于我们的时代80后都过去了...Python和万圣节来了万圣节既然秉承着寓教于乐的python学习态度,何不用Python画一个万圣节的标志---南瓜怪呢!说到python绘图,就免不了要提到turtle模块。小乌龟是python中最火的绘图模块。是的,虽然它的功能比不上专业的绘图工具,但还是可以画一些简笔画的。之所以只能用乌龟画一些简笔画,多半是因为自己学的功底太浅,用不着做出高大上的作品。当然,还有一个原因,那就是我没有画画的天赋,从小美术就很失败!但是为了适应这种情况,还是硬着头皮写一段代码吧!turtle模块python的turtle库原来在【零基础学习Python入门】接触了很久,有点生疏了。先带大家回顾一下模块的使用。如果你想认真研究这个库,建议去官网仔细看看相关内容:https://docs.python.org/3.7/library/turtle.html但是如果你只是开始像我这样从娱乐开始,那么你只需要上手几分钟就可以开始画画了。在这里,我为大家整理了一些常用的方法:以上内容,足够大家炫耀了……每天晚上新闻联播节目结束的时候,总会播出主持人的收稿。屏幕。为了告诉观众朋友,主持人说辛(段)文(子)打稿了!既然要画南瓜怪,就得先打个草稿!大家还记得,在邢大师的《唐伯虎点秋香》中,朱枝山那幅百鸟朝凤(鸡吃米)的图至今给人留下了深刻的印象。那么今天IT行业的王博虎就给大家带来了下面这幅画卷,它的名字叫:这个南瓜有点冷。不知道这张图会吸多少粉丝。他们一定是嫉妒我的才华吧!来自IT界龟代码的朱枝山首先,为了掩盖绘画功底的拙劣,我们需要在绘画前选择一张稍微漂亮一点的背景图,例如:南瓜怪的背景图就不是正圆,我们需要画出椭圆的实现效果。在刚刚学习的内容中,有一个方法turtle.circle(r,extent,steps),其中的steps参数值得我们分析。先来看一段代码:1#-*-coding:utf-8-*-2#@作者:王翔3#@微信:King_Uranus4#@公众号:BreezePython5#@GitHub:https://github.com/BreezePython6#@Date:2019/10/3022:317#@Software:PyCharm8#@version:Python3.7.39#@File:circle.py1011importturtleast1213foriinrange(3,10,2):14t.circle(100,steps=i)15t.left(90)1617t.circle(100,steps=30)1819foriinrange(30):#重复i次20t.forward(20.93)#移动x个单位21t.left(12)#向左转ydegrees2223t.done()效果如下:圆中的steps参数其实可以理解为一个多边形的边数之和,那么当边数较多时(30-gon),是否人影进场在我们眼里是一圈?我们再想一想,具体实现是不是可以理解为用画笔画一条直线,然后旋转角度,画一条直线等等,最后旋转360度,形成一个图形。同理如下:有朋友会问1.74从何而来?C=2πr=628628/360=1.7444...所以每一度的边长是1.741importturtleast23foriinrange(360):#重复i次4t.forward(1.74)#移动x单位5t.left(1)#offsetradian67t.circle(100)圆绘制分析知道了这些,就该考虑如何绘制椭圆了。之所以是圆,是因为所有的边都是相等的,那么如果边不相等,会不会造成椭圆的效果呢?现在我们用这种方式绘制南瓜的形状:1importturtleast23t.speed(10)4t.pensize(6)5t.hideturtle()6t.screensize()7t.bgcolor('black')8t.bgpic('dark_night.png')9t.color('#CF5E1A','#CF??5E1A')1011#画南瓜12t.penup()13t.goto(250,30)14t.pendown()15t.seth(90)16t.begin_fill()17forjinrange(25):18t.fd(j)19t.left(3.6)20forjinrange(25,0,-1):21t.fd(j)22t.left(3.6)23t.seth(-90)24t.circle(254,180)25t.end_fill()2627t.done()南瓜形状南瓜的处理比较简单,只需要将画笔加粗,然后画出一定的弧度即可。眼睛部分的处理方法和南瓜顶盖差不多,这里就不赘述了。最终效果最终效果图整体代码:1#-*-coding:utf-8-*-2#@作者:王翔3#@WeChat:King_Uranus4#@公众号:QingfengPython5#@GitHub:https://github.com/BreezePython6#@Date:2019/10/2922:307#@Software:PyCharm8#@version:Python3.7.39#@File:PumpkinMonster.py101112importturtleast131415definit():16#Initialization17t.bgpic('dark_night.png')18t.screensize(500,500,bg='white')19t.speed(10)20t.hideturtle()21t.bgcolor('black')22t.bgpic('dark_night.png')232425defoutline():26#Draw南瓜轮廓27t.color('#CF5E1A','#CF??5E1A')28t.penup()29t.goto(250,30)30t.pendown()31t.seth(90)32t.begin_fill()33forjinrange(25):34t.fd(j)35t.left(3.6)36forjinrange(25,0,-1):37t.fd(j)38t.left(3.6)39t.seth(-90)40t.circle(254,180)41t。end_fill()424344deftail():45#画南瓜枝46t.penup()47t.goto(0,180)48t.pendown()49t.color('#2E3C01')50t.seth(100)51t.pensize(25)52t.circle(60,100)535455defeyes(args):56#eye57foritemsinargs:58position,angle,direction=items59t.pensize(6)60t.penup()61t.goto(位置,0)62t.pendown()63t.color('#4C180D','#4C180D')64t.begin_fill()65t.seth(angle)66forjinrange(55):67t.fd(3)68ifdirection:69t.left(3)#左转3度70else:71t.right(3)#左转3度72t.goto(position,0)73t.end_fill()747576defnose():77#鼻子78t.penup()79t.goto(0,0)80t.seth(180)81t.pendown()82t.begin_fill()83t.circle(50,steps=3)84t.end_fill()858687defmouth():88#嘴巴89t.color('#F9D503','#F9D503')90t.pensize(6)91t.penup()92t.penup()93t.goto(-150,-100)94t.pendown()95t.begin_fill()96t.seth(-30)97t.fd(100)98t.left(90)99t.fd(30)100t.right(90)101t.fd(60))102t.left(60)103t.fd(60)104t.right(90)105t.fd(30)106t.left(90)107t.fd(100)108t.end_fill()109t.done()110111112if__name__=='__main__':113init()114outline()115tail()116eyes_items=[(-60,230,0),(60,-50,1)]117eyes(eyes_items)118nose()119mouth()120t.done()
