turtle海龟画图

本文详细介绍了使用Python的turtle库进行基础绘图,包括海龟库入门、角度控制、不同图形绘制(正方形、等边三角形、圆和五角星)、画笔设置(颜色、粗细、填充)、坐标和抬笔落笔技巧,以及实际应用如美国盾牌和人脸绘制实例。
摘要由CSDN通过智能技术生成

01. turtle海龟画图

1. turtle库入门

turtle,即:海龟,是Python中一种 绘图工具 库,也叫 海龟库。默认是从原点(0,0)位置开始画图。

在这里插入图片描述

法名返回值说明
.forward(100)面朝当前方向前进100个像素
.back(100)面朝当前方向后退100个像素
.done()结束画画
# 引入海龟库,并给海龟取别名为t
import turtle as t

# 向前(默认向右)画100步
t.forward(100)

# 结束画画
t.done()

结果:
在这里插入图片描述

2. 角度的概念

在绘制图形时,有时需要转向,那么就需要调整前进箭头的指向(角度)即可

方法名方法说明
.left(90)左转90度,度数的取值范围:0~360
.right(90)右转90度,度数的取值范围:0~360
# 引入海龟库,并给海龟取别名为t
import turtle as t
# 向前100步
t.forward(100)
# 拐个弯,向左拐90度
t.left(90)
# 再向前100步
t.forward(100)
# 拐个弯,向右拐90度
t.right(90)
# 再向前100步
t.forward(100)
# 结束画画
t.done()

结果:
在这里插入图片描述

3. 设置箭头造型

为什么叫小海龟呢?因为箭头是可以设置为小海龟的,当然,默认是箭头

方法名方法说明
.shape(‘turtle’)召唤海龟,造型可以是:arrow、turtle、circle、square、triangle、classic
.hideturtle()绘图结束后,隐藏箭头
# 引入海龟库,并给海龟取别名为t
import turtle as t
# 造型设置为海龟
t.shape('turtle')
# 前进100个像素
t.forward(100)
# 隐藏海龟
# t.hideturtle() #这行代码如果执行,海龟就会隐藏,这里我们注释代码了
# 结束画画
t.done()

结果:

在这里插入图片描述

02. 绘制多种图形

1. 正方形

如图:
在这里插入图片描述

分析:正方形四条边相等,内角和为360度,拐弯的角度为:360 / 4 = 90°,参考代码如下:

import turtle as t  # 引入海龟库,并给海龟取别名为t
t.shape('turtle') # 召唤海龟
t.forward(100)  # 画第一条边
t.left(90)  # 左拐90度
t.forward(100)  # 画第二条边
t.left(90)
t.forward(100)  # 画第三条边
t.left(90)
t.forward(100)  # 画最后一条边
t.done() # 结束画画

2. 等边三角形

如图:在这里插入图片描述

分析:等边三角形三条边相等,内角和为180度,所以每一个内角为180/3=60度,外角为120度

import turtle as t  # 引入海龟库,并给海龟取别名为t
t.shape('turtle')  # 召唤海龟
t.forward(100) # 前进100个像素(第一条边)
t.right(120)   # 右拐120度
t.forward(100)  # 前进100个像素(第二条边)
t.right(120)  # 右拐120度
t.forward(100)  # 前进100个像素(第三条边)
t.done()  # 结束画画

3. 圆

圆的绘制,有自己单独的方法:.circle()

方法名方法说明
.circle(100)绘制一个圆 。100是半径,若半径>0,左拐画圆;若半径<0,右拐画圆
  • 圆圈:在这里插入图片描述
import turtle as t  # 引入海龟库,并给海龟取别名为t
t.shape('turtle')  # 召唤海龟
t.circle(100) # 左拐画一个半径100的圆
t.done()  # 结束画画

思考:画一个小雪人,小圆半径50,大圆半径100,如图所示:在这里插入图片描述

方法一:

import turtle as t
t.shape('turtle')
t.circle(50) #左拐画半径50的圆
t.circle(-100) #右拐画半径100的圆

方法二:

import turtle as t
t.shape('turtle')
t.circle(50)
t.right(180) #海龟向右旋转180度
t.circle(100)

4. 五角星

如图:在这里插入图片描述

分析:五角星的五个内角和为180度,所以每一个内角为180/5=36度,外角为144度

import turtle as t
t.shape('turtle') 
import turtle as t  # 引入海龟库,并给海龟取别名为t
t.shape('turtle')  # 召唤海龟
t.forward(100) # 前进100个像素
t.right(144)  # 右拐144度
t.forward(100)
t.right(144)
t.forward(100)
t.right(144)
t.forward(100)
t.right(144)
t.forward(100)
t.done()  # 结束画画

03. 画笔设置

1. 画笔设置

海龟库绘制时的线条是可以设置的,例如画笔的颜色,方法名如下:

方法名方法说明
.pencolor(‘red’)设置画笔颜色,例如红色
import turtle #导入海龟图库
turtle.shape('turtle') #召唤海龟
turtle.pencolor("red")  #画笔颜色
turtle.circle(100) #半径100的圆
turtle.done() #结束画画

在这里插入图片描述

除此之外,我们还可以设置画笔的粗细,方法如下:

方法名方法说明
.pensize(s)设置画笔粗细,最小值1
import turtle #导入海龟图库
turtle.shape('turtle') #召唤海龟
turtle.pencolor("red")  #画笔颜色
turtle.pensize(20)  #画笔粗细
turtle.circle(100) #半径100的圆
turtle.done() #结束画画

在这里插入图片描述

2. 填充设置

如何在绘制好的封闭区域进行填充颜色呢?方法如下:

方法名方法说明
.fillcolor(‘red’)设置填充的颜色 ,例如红色
.begin_fill()在需要填充的封闭区域前设置
.end_fill()在需要填充的封闭区域后设置
import turtle
turtle.shape('turtle')
turtle.begin_fill()  #开始填充
turtle.circle(100) #画圆
turtle.fillcolor("orange") #填充颜色:橙色
turtle.end_fill()  #结束填充
turtle.done()

在这里插入图片描述

3. 画布设置

画布:绘图的区域,我们可以设置它的大小和初始位置。

方法名方法说明
.screensize(width,height,bg)设置画布的大小【默认大小为(400,300)】
上面参数参数说明
width
height
bg背景颜色
import turtle
turtle.screensize(200,200,'green')  #设置画布大小

结果:在这里插入图片描述

04. 抬笔和落笔

1. 坐标的概念

默认情况下,海龟绘图在屏幕原点(0,0)位置开始。我们可以设置对应坐标让其在指定位置绘制.

方法名说明
.goto(x, y)到达指定坐标(x,y)
import turtle as t #导入turtle海龟库,并给turtle起别名,叫t
t.circle(100) #半径100的圆
t.goto(0, 50)  #将画笔在y轴上移50的位置
t.circle(50)  # 半径50的圆
t.done() #结束画画
在这里插入图片描述
  • 虽然,我们绘制出了同心圆,但暴露了一个问题:当绘制第二个圆时,笔头划过路过的区域,并没有抬笔,此时,我们需要通过抬笔和落笔来解决

2. 抬笔与落笔

每次当笔头要位移绘制时,我们需要将笔头抬起,然后再绘制处再落笔即可。

方法名说明
.penup()设置画笔抬起,此时无法绘制内容
.pendown()设置画笔落下,此时可以绘制内容
import turtle as t #导入turtle海龟库,并给turtle起别名,叫t
t.circle(100) #半径100的圆
t.penup() #抬笔
t.goto(0, 50)  #将画笔在y轴上移50的位置
t.pendown() #落笔
t.circle(50)  # 半径50的圆
t.done() #结束画画
在这里插入图片描述

画图案例练习:

  • 案例演练1:

如图:在这里插入图片描述

分析:圆的半径:200/2 = 100,参考代码如下:

import turtle as t
t.circle(100)
t.penup() #抬笔
t.goto(200, 0) #移动到指定坐标位置
t.pendown() #落笔
t.circle(100)
t.done()

案例演练2:美国盾牌

如图:

在这里插入图片描述

分析:由外到里,逐个画出(6步),如下:

1.画最外层的红圈

具体做法:画一个半径200的圆,起点坐标(0, -200),画笔颜色:红色;填充色为:红色

2.白色圆圈

具体做法:画一个半径150的圆,起点坐标 (0, -150),画笔颜色:白色;填充色为:白色

3.里面的红圈

具体做法:画一个半径100的圆,起点坐标(0, -100),画笔颜色:红色;填充色为:红色

4.蓝色圈

具体做法:画一个半径50的圆,起点坐标(0, -50),画笔颜色:蓝色;填充色为:蓝色

5.五角星

具体做法:画一个步长为80的五角星,起点坐标 (-40, 10),画笔颜色:白色;填充色为:白色

6.收尾工作

具体做法:
(1)隐藏箭头 hideturtle
(2)结束画画 done

import turtle as t

# 一、最外层的红圈
t.penup()
t.goto(0, -200) #移动到指定坐标
t.pendown()
t.pencolor('red') # 画笔颜色:红色
t.fillcolor('red')  # 填充为红色
t.begin_fill()  # 开始填充
t.circle(200)
t.end_fill()  # 结束填充

# 二、白色圈
t.penup()
t.goto(0, -150)
t.pendown()
t.pencolor('white') 
t.fillcolor('white') 
t.begin_fill()  
t.circle(150)
t.end_fill()  

# 三、里面的红圈
t.penup()
t.goto(0, -100)
t.pendown()
t.pencolor('red')  
t.fillcolor('red')
t.begin_fill()
t.circle(100)
t.end_fill()

# 四、蓝色圈
t.penup()
t.goto(0, -50)
t.pendown()
t.pencolor('blue')
t.fillcolor('blue')
t.begin_fill()
t.circle(50)
t.end_fill()

# 五、五角星
t.penup()
t.goto(-40, 10)
t.pendown()
t.pencolor('white')
t.fillcolor('white')
t.begin_fill()  
t.forward(80) # 第一条边
t.right(144)
t.forward(80)  # 第二条边
t.right(144)
t.forward(80)  # 第三条边
t.right(144)
t.forward(80)  # 第四条边
t.right(144)
t.forward(80)  # 第五条边
t.end_fill()

# 六、收尾工作
t.hideturtle() # 隐藏箭头
t.done() #结束画画

05. 画点

方法名说明
.dot(r,c)绘制一个指定直径和颜色的圆点
上面参数参数说明
r直径
c(可省略)颜色

举例:

import turtle as t
t.dot(400, 'green') # 直径400,绿色圆点
t.hideturtle()  # 隐藏箭头
t.done() 

结果:在这里插入图片描述


1. 美国盾牌

  • 要求:用dot实现
  • 分析:由外到里,逐个画出(3步),如下:

【1】.画出所有圆圈

具体做法:
(1)先画最外圈的圆:直径400,红色圆点
(1)第二个圆:直径300,白色圆点
(1)第三个圆:直径200,红色圆点
(1)最小的圆:直径100,蓝色圆点

【2】.五角星

具体做法:画一个步骤为80的五角星,起点坐标 (-40, 10),画笔颜色:白色;填充色为:白色

【3】.收尾工作

具体做法:
(1)隐藏箭头 hideturtle
(2)结束画画 done

import turtle as t

# 一、四个圆圈
t.dot(400, 'red')  # 直径400,红色圆点
t.dot(300, 'white')  # 直径300,白色圆点
t.dot(200, 'red')  # 直径200,红色圆点
t.dot(100, 'blue')  # 直径100,蓝色圆点

# 二、五角星
t.penup()
t.goto(-40, 10)
t.pendown()
t.pencolor('white')
t.fillcolor('white')
t.begin_fill()
t.forward(80)  # 第一条边
t.right(144)
t.forward(80)  # 第二条边
t.right(144)
t.forward(80)  # 第三条边
t.right(144)
t.forward(80)  # 第四条边
t.right(144)
t.forward(80)  # 第五条边
t.end_fill()

# 三、收尾工作
t.hideturtle()  # 隐藏箭头
t.done()  # 结束画画

结果:在这里插入图片描述

2. 画人脸在这里插入图片描述

import turtle as t

#圆脸
t.penup()
t.goto(0,-200)
t.pendown()
t.circle(200)

#左眼
t.penup()
t.goto(-100,50)
t.pendown()
t.dot(40,'blue')

#右眼
t.penup()
t.goto(100,50)
t.pendown()
t.dot(40,'blue')

#鼻子
t.penup()
t.goto(0,50)
t.pendown()
t.circle(-50,steps=3)

#画嘴
t.penup()
t.goto(-150,-70)
t.pendown()
t.goto(0,-170)
t.goto(150,-70)

# 结束画画
t.done()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值