教你用Python画简单的表情包(Turtle库的应用)
Python学习之Turtle库的基本用法
前言
Python是一门面向对象的高级程序语言,同时Python也是一门解释型的脚本语言,相较于其他高级程序语言(如:Java、C、C++等)而言,Python具有鲜明的 “代码简洁” 的特点,其一点重要的在于Python除了拥有本身的一些标准库外,还拥有丰富的第三方库。而其中一些第库则可以实现用画笔画图的功能,我们今天学习的 “Turtle库” 就是这样一个库。
一、Turtle是什么?
“Turtle” 中文译为 “海龟”,是Python的绘图体系库,是python的标准库之一,属于入门级的图形绘制函数库。 turtle库绘制原理:有一只海龟在窗体正中心,在画布上游走,走过的轨迹形成了绘制的图形,海龟由程序控制,可以自由改变颜色、方向宽度等;
二、安装Turtle库
由于Turtle库属于Python的标准库,一般不需要安装,Python的解释器(或者Anaconda)本身就自带了Turtle库,因此不需要额外安装。 假如由于自己本身的解释器原因或者环境原因而无法使用Turtle库,一般有以下两种解决方法: 方法一:先卸载原来的Turtle库,再重新安装Turtle库(代码如下):
pip uninstall turtle
pip install turtle
方法二:直接卸载现有电脑上的解释器,并重新安装。
三、Turtle库的使用方法
1.引入库
代码如下(示例):
import turtle
2.Turtle的绘图窗体
在用Turtle库绘图之前,我们需要像现实中绘画一样需要给我们自己准备一张白纸,而在Python中这样一张白纸叫做“绘图窗体”,这样一个绘图窗体(画布)用setup即可实现,setup后总共有四个参数 (1)width:画布的宽度; (2)height:画布的高度 (3)startx:画布中坐标原点的x轴值(绝对坐标) (4)starty:画布中坐标原点的y轴值(绝对坐标)
代码如下(示例):
turtle.setup(width,height,startx,starty)
3.画笔
画笔其实和我们现实中的笔并无区别,唯一不同的是Turtle中的画笔是一个矢量,也就是说画笔是有方向的,在窗体中画笔的具体表示就是一个箭头,而箭头所指的方向即画笔下一步移动的方向。 画笔有以下几个常见的操作: (1)抬笔(代码示例如下):
turtle.penup()
(2)落笔(代码示例如下):
turtle.pendown()
(3)设置画笔宽度(代码示例如下):
turtle.pensize(5)
(4)设置画笔颜色(代码示例如下):
turtle.pencolor("black")
turtle.pencolor(255,255,255)
(5)画笔向前移动(代码示例如下):
turtle.fd(40)
turtle.forward(40)
(6)画笔画圆圈(代码示例如下):
turtle.circle(r,extend=NONE)
(7)画笔的跳跃移动(代码示例如下):
turtle.goto(-80,-80)
(8)调整画笔方向(代码示例如下):
turtle.seth(75)
4.颜色填充
代码示例:
turtle.color("black","pink")
turtle.begin_fill()
......
turtle.end_fill()
5.在画笔当前位置写入文本
turtle.write(arg, move=False, align=’left’, font=(‘Arial’, 8, ‘normal’))
其中: arg:为需要写入的文本,用引号括起来 move:在默认情况下,move为false。如果move为true,则笔将移动到右下角 align:可取值是left即左、center即中、right即右之一,是字符串格式 font:三元组(字体名称,字体大小,字体类型)
四、使用Turtle库画一个表情包实例
import turtle
turtle.setup(800,400,200,200)
turtle.penup()
turtle.goto(-80,-80)
turtle.pendown()
turtle.pensize(5)
turtle.pencolor("black")
turtle.seth(75)
turtle.fd(20)
turtle.penup()
turtle.bk(20)
turtle.seth(0)
turtle.fd(80)
turtle.pendown()
turtle.seth(105)
turtle.fd(40)
turtle.penup()
turtle.seth(180)
turtle.fd(40)
turtle.seth(90)
turtle.pencolor("red")
turtle.pendown()
turtle.circle(18,180)
turtle.left(25)
turtle.circle(80,40)
turtle.penup()
turtle.seth(115)
turtle.circle(80,40)
turtle.seth(90)
turtle.circle(-18,180)
turtle.seth(90)
turtle.pendown()
turtle.circle(-18,180)
turtle.right(25)
turtle.circle(-80,40)
turtle.penup()
turtle.goto(-85,-30)
turtle.seth(160)
turtle.pencolor("black")
turtle.pendown()
turtle.circle(-105,320)
turtle.penup()
turtle.goto(-85,75)
turtle.seth(90)
turtle.pendown()
turtle.begin_fill()
turtle.circle(15,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-90,70)
turtle.pendown()
turtle.color("white","white")
turtle.begin_fill()
turtle.circle(3,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-100,79)
turtle.pendown()
turtle.begin_fill()
turtle.circle(3,360)
turtle.end_fill()
turtle.penup()
turtle.goto(10,73)
turtle.pencolor("black")
turtle.pendown()
turtle.color("black","black")
turtle.begin_fill()
turtle.circle(15,360)
turtle.end_fill()
turtle.color("white","white")
turtle.penup()
turtle.goto(5,68)
turtle.pencolor("white")
turtle.pendown()
turtle.begin_fill()
turtle.circle(3,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-5,77)
turtle.pendown()
turtle.begin_fill()
turtle.circle(3,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-80,20)
turtle.right(45)
turtle.pencolor("black")
turtle.pendown()
turtle.fd(10)
turtle.penup()
turtle.bk(10)
turtle.seth(0)
turtle.pendown()
turtle.fd(55)
turtle.penup()
turtle.seth(120)
turtle.pendown()
turtle.fd(13)
turtle.penup()
turtle.bk(13)
turtle.seth(180)
turtle.fd(42)
turtle.seth(-95)
turtle.pendown()
turtle.color("black","pink")
turtle.begin_fill()
turtle.fd(20)
turtle.circle(15,190)
turtle.right(15)
turtle.fd(17)
turtle.end_fill()
turtle.penup()
turtle.goto(-8,-40)
turtle.seth(90)
turtle.pendown()
turtle.circle(8,150)
turtle.seth(-90)
turtle.fd(30)
turtle.seth(100)
turtle.fd(22)
turtle.circle(6,180)
turtle.seth(-80)
turtle.fd(22)
turtle.circle(12,180)
turtle.right(10)
turtle.fd(25)
turtle.penup()
turtle.goto(-89,-38)
turtle.seth(170)
turtle.pendown()
turtle.circle(10,240)
turtle.pensize(3)
turtle.penup()
turtle.pencolor("pink")
turtle.goto(-120,30)
turtle.pendown()
turtle.fd(10)
turtle.penup()
turtle.goto(-110,30)
turtle.pendown()
turtle.fd(10)
turtle.penup()
turtle.goto(-100,30)
turtle.pendown()
turtle.fd(10)
turtle.pensize(3)
turtle.penup()
turtle.pencolor("pink")
turtle.goto(-10,30)
turtle.pendown()
turtle.fd(10)
turtle.penup()
turtle.goto(0,30)
turtle.pendown()
turtle.fd(10)
turtle.penup()
turtle.goto(10,30)
turtle.pendown()
turtle.fd(10)
turtle.penup()
turtle.goto(-230,-150)
turtle.pensize(5)
turtle.pendown()
turtle.write("小 心 心 送 给 你",font = ("Courier",30,"bold"))
turtle.penup()
turtle.goto(-60,-70)
turtle.pencolor("purple")
turtle.pendown()
turtle.write("",font = ("Courier",15,"bold"))
turtle.done()
五、整体效果图
|