IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 2021-08-15 -> 正文阅读

[Python知识库]2021-08-15

教你用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库(代码如下):

#电脑“win+r”并输入“cmd”,输入以下命令卸载原来的库
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)
#setup设置窗体大小,四个参数中后两个参数非必选参数;
#setup()是非必须的;

在这里插入图片描述

3.画笔

画笔其实和我们现实中的笔并无区别,唯一不同的是Turtle中的画笔是一个矢量,也就是说画笔是有方向的,在窗体中画笔的具体表示就是一个箭头,而箭头所指的方向即画笔下一步移动的方向。
画笔有以下几个常见的操作:
(1)抬笔(代码示例如下):

turtle.penup()	#将画笔在当前位置使得笔尖与纸张分离

(2)落笔(代码示例如下):

turtle.pendown()	#将画笔笔尖在当前位置与纸张接触,但不进行移动

(3)设置画笔宽度(代码示例如下):

turtle.pensize(5)	#在此将画笔的宽度设置为5个像素

(4)设置画笔颜色(代码示例如下):

turtle.pencolor("black")	#画笔设置成黑色,括号中参数为颜色字符串
turtle.pencolor(255,255,255)	#画笔设置成黑色,括号中参数为RGB参数

(5)画笔向前移动(代码示例如下):

turtle.fd(40)	#将画笔向前移动40个像素
turtle.forward(40)	#将画笔向前移动40个像素

(6)画笔画圆圈(代码示例如下):

turtle.circle(r,extend=NONE)	#根据半径r绘制extent角度的弧形,r默认在圆心左侧R距离的位置;

(7)画笔的跳跃移动(代码示例如下):

turtle.goto(-80,-80)	#将画笔移动到坐标为(-80,-80)的点

(8)调整画笔方向(代码示例如下):

turtle.seth(75)	#将画笔方向指向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)     #设置画布大小和位置

#1号直线
turtle.penup()
turtle.goto(-80,-80)
turtle.pendown()
turtle.pensize(5)
turtle.pencolor("black")
turtle.seth(75)
turtle.fd(20)

#2号直线
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()

五、整体效果图

在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-16 11:42:01  更:2021-08-16 11:43:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:48:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码