今天被这个广告刷屏了《啥是佩奇》。佩奇明明是??个喜剧人物,但是大家看到都哭了。快过年了,农村的爷爷给城里的孙子打电话。孙子说他想要“Peppa”。为了满足孙子的心愿,爷爷开始满村找佩吉。《啥是佩奇》片头电话那头爷爷的话很感人。天下的爷爷都是这样疼孙子的,顿时让观众感同身受。“什么是佩奇?”这句话为爷爷接下来寻找佩奇的旅程铺平了道路。爷爷捡到的佩奇骨骼结构很奇怪,但它是主人在世界上见过的最可爱的小猪佩奇!不知道你们看完是什么感觉,反正我看完还是哭了。看到网友们也纷纷留言,说是哭笑对唱……看着爷爷满村找佩奇,心里有点心疼。为此,我想用纯Python来告诉爷爷,什么是Page?这是佩奇!先来看看效果视频:基本思路:选择画板的大小,设置画笔的颜色和粗细,定位,画出鼻子、头、耳朵、眼睛、腮、嘴、身体、手脚,尾巴,完成。众所周知,turtle是Python的一个有趣的内置模块,俗称turtledrawing,它基于tkinter模块,提供了一些简单的绘图工具。在TurtleDrawing中,我们可以编写命令来使虚拟(假想的)乌龟在屏幕上四处移动。乌龟背着一支笔,我们可以让乌龟用这支笔,走到哪里都可以画线。通过编写代码以各种炫酷的图案移动乌龟,我们可以画出令人惊叹的图画。使用TurtleDrawing,我们不仅可以仅用几行代码创建令人印象深刻的视觉效果,而且我们还可以跟随海龟,看看每行代码如何影响它的移动。这可以帮助我们理解代码的逻辑。所以画龟经常被作为新手学习Python的一种方式。更详细的功能和知识可以参考官方文档:https://docs.python.org/3/library/turtle.html了解turtle的用法后,就可以开始实战了。代码示例:fromturtleimport*defnose(x,y):#nosepenup()#raisethepengoto(x,y)#positionpendown()#putpendown,startdrawingsetheading(-30)#setthedirectionoftheturtletoto_angle/Fornumbers(0-east,90-north,180-west,270-south)begin_fill()#准备开始填充图形a=0.4foriinrange(120):if0<=i<30or60<=i<90:a=a+0.08left(3)#向前左转3度(a)#向前走一步else:a=a-0.08left(3)forward(a)end_fill()#填满penup()setheading(90)forward(25)setheading(0)forward(10)pendown()pencolor(255,155,192)#画笔颜色setheading(10)begin_fill()circle(5)color(160,82,45)#返回或设置pencolor和fillcolorend_fill()penup()setheading(0)forward(20)pendown()pencolor(255,155,192)setheading(10)begin_fill()circle(5)color(160,82,45)end_fill()defhead(x,y):#headcolor((255,155,192),"pink")penup()goto(x,y)setheading(0)pendown()begin_fill()setheading(180)circle(300,-30)circle(100,-60)圆(80,-100)圆(150,-20)圆(60,-95)setheading(161)圆(-300,15)penup()goto(-100,100)pendown()setheading(-30)a=0.4foriinrange(60):if0<=i<30or60<=i<90:a=a+0.08lt(3)#向左转3度fd(a)#前进一步else:a=a-0.08lt(3)fd(a)end_fill()defcheek(x,y):#脸颊颜色((255,155,192))penup()goto(x,y)pendown()setheading(0)begin_fill()circle(30)end_fill()defmouth(x,y):#mouthcolor(239,69,19)penup()goto(x,y)pendown()setheading(-80)circle(30,40)circle(40,80)defsetting():#参数设置pensize(4)hideturtle()#让海龟不可见(隐藏)colormode(255)#设置为1.0或255。那么colortriple的r,g,b值必须在范围内0..cmodecolor((255,155,192),"pink")setup(840,500)speed(10)defmain():setting()#canvas,画笔设置nose(-100,100)#nosehead(-69,167)#headears(0,160)#earseyes(0,140)#eyecheek(80,10)#嘴mouth(-20,30)#口done()if__name__=='__main__':main()的思路其实很简单,即通过turtle模块实现基本圆、Ellipse、curve等,难点在于如何定位各个部分的位置(建议先画草图)。完整代码需要300行。限于篇幅,只包含部分代码。需要完整源码的,微信后台回复关键字“页面是什么”即可获取。作者:丁彦军简介:一个痴迷Python的码农,公众号:爱学Python,在这里用Python做一些有意义的事情。
