当前位置:   article > 正文

turtle海龟画图

海龟画图

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

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

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

结果:

在这里插入图片描述

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() # 结束画画
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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()  # 结束画画
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3. 圆

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

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

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

方法一:

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

方法二:

import turtle as t
t.shape('turtle')
t.circle(50)
t.right(180) #海龟向右旋转180度
t.circle(100)
  • 1
  • 2
  • 3
  • 4
  • 5

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()  # 结束画画
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

03. 画笔设置

1. 画笔设置

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

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

在这里插入图片描述

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

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

在这里插入图片描述

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

3. 画布设置

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

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

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

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() #结束画画
  • 1
  • 2
  • 3
  • 4
  • 5
在这里插入图片描述
  • 虽然,我们绘制出了同心圆,但暴露了一个问题:当绘制第二个圆时,笔头划过路过的区域,并没有抬笔,此时,我们需要通过抬笔和落笔来解决

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
在这里插入图片描述

画图案例练习:

  • 案例演练1:

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

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

import turtle as t
t.circle(100)
t.penup() #抬笔
t.goto(200, 0) #移动到指定坐标位置
t.pendown() #落笔
t.circle(100)
t.done()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

案例演练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() #结束画画
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63

05. 画点

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

举例:

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

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


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()  # 结束画画
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

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

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/845715
推荐阅读
相关标签
  

闽ICP备14008679号