turtle的英文意思是“海龟”,今天学习的turtle库也叫作海龟绘图库。想象一下一只小海龟在海面上游泳,海龟游过的轨迹变成了一幅幅有趣的图案。
1. Turtle的绘图窗体布局
美术生作画时必不可少的两样东西:画纸和画笔。画纸在画板上,画板放在画架上。当我们需要使用Turtle来进行绘画时,画板就是我们的电脑显示器,画纸就是我们的Turtle窗口,画笔就是那一条小海龟,海龟游啊游啊一幅画就形成了。
我们将显示器左上角的坐标定义为 (0, 0),将Turtle绘图窗口的左上角定义为我们绘图时的原点,它相对于整个显示器的坐标为(startx, starty)。
可以使用 Turtle.setup(width, height, startx, starty) 函数来设置启动Turtle绘图窗口的位置和大小,以下是参数解释:
- width:Turtle 绘图窗口的宽度。
- height:Turtle 绘图窗口的宽度
- startx:Turtle 绘图窗口距显示器左侧的距离
- starty:Turtle 绘图窗口距显示器顶部的距离
注:
- width 和 height 如果值是整数,则表示该窗口占据多少个像素的宽度;如果为小数,则为宽度占据显示器的百分比,默认width占据 50%,height占据70%。
- 如果 startx 和 starty 省略,则窗口默认处于显示器的正中心。
2. Turtle空间坐标体系
2.1 绝对坐标
如下图所示,我们将画布的正中心当做绝对坐标(0,0)。海龟默认是向右侧运动的,所以我们将Turtle绘图窗体的右方向定义为 x 轴,上方向定义为 y 轴。
绝对坐标里常用函数:
- turtle.goto(x, y):指定 x 和 y 的值,海龟将会到达坐标为(x, y)的位置。
2.2 海龟坐标
站在海龟的角度,无论海龟当前的行进方向是朝向哪个角度的,都叫做前进方向,反向就后退方向,海龟运行的左侧叫做左侧方向,右侧叫做右侧方向。
下面是常用的用于控制海龟的函数:
- turtle.forward(distance):控制海龟前进 distance 个单位像素的距离。forwad 可以简写为 fd,即 turtle.forward(distance) 和 turtle.fd(distance) 的效果是一样的。
- turtle.backward(distance):控制海龟后退 distance 个单位像素的距离。backward可以简写为 ,即 turtle.backward(distance) 和 turtle.bk(distance) 的效果是一样的。
- turtle.circle(r,angle):以海龟当前位置,左侧的某一个点为圆心,半径为 r 的距离,画一个角度值为angle 的弧形。如果没有指定 angle 的值,则默认为360度,也就是画一个圆。r 和 angle 的值可以为负数,意为反方向。注意,顺时针旋转的角度度数值为负数,逆时针的为正数。
3. Turtle 的角度坐标体系
3.1 绝对角度
turtle建立了一个空间坐标体系,那么在空间坐标中,海龟行进的方向也有一个角度,同样分为绝对角度和海龟角度。
对于绝对角度来讲,绝对坐标的x正轴表示0度或360度,y正轴表示90度或-270度,x负轴表示180度或-180度,y负轴表示270度或-90度。
相关的函数有:
turtle.seth(angle):设置 angel 的值用于改变海龟行进方向,只改变方向不行进。
3.2 海龟角度
对于海龟角度来讲,为了更好的改变海龟的行进方向,使用左右的方式来改变它的行进角度。
相关的函数有:
turtle.left(angle):让海龟向左改变 angle 个角度
turtle.right(angle):让海龟向右改变 angle 个角度
4. Turtle 的 RGB 色彩体系
RGB即Red、Green、Blue三种颜色的组合,这三种颜色的组合能够覆盖视力所能感知到的素有颜色。RGB每种颜色的取值范围为0-255之间的整数或者0-1之间的小数。常用的RGB颜色:
英文名词 | RGB整数值 | RGB小数值 | 中文名词 |
---|---|---|---|
white | (255,255,255) | (1,1,1) | 白色 |
yellow | (255,255,0) | (1,1,0) | 黄色 |
black | (0,0,0) | (0,0,0) | 黑色 |
blue | (0,0,255) | (1,1,1) | 蓝色 |
更多更好看的颜色,可以访问以下链接:
https://www.runoob.com/html/html-colorvalues.html
turtle库默认采用RGB的小数值来表示颜色,当然也可以使用函数turtle.colormode(mode)来切换RGB数值模式。当mode为1.0时表示采用小数值来表现RGB,当mode为255时表示采用整数值来表现RGB。
与颜色设置相关的函数:turtle.color()、turtle.pencolor()、turtle.fillcolor(),由于设置画笔颜色和填充色;还有turtle.bgcolor(),设置窗体背景色。
5. Turtle常用函数
5.1 画笔控制函数
-
turtle.penup() 或者 turtle.pu() 或者 turtle.up():抬笔,移动时不绘图
-
turtle.pendown() 或者 turtle.pd() 或者 turtle.down():落笔,移动时绘图
-
turtle.pensize(width):设置画笔尺寸
-
turtle.width(width):画笔宽度
-
turtle.pencolor(*args):如果不给参数,则返回当前画笔颜色,给出参数则是设定画笔颜色。设置颜色有三种方式的参数,pencolor(colorstring)、pencolor((r,g,b))和pencolor(r,g,b)
5.2 运动控制函数
-
turtle.forward(distance) 或者 turtle.fd(distance):前进distance像素
-
turtle.backward(distance) 或者 turtle.bk(distance) 或者 turtle.back(distance):后退distance像素
-
turtle.circle(r,angle):以画笔(海龟)左侧为圆心,半径为r像素,画angle度的圆形。注意:海龟方向同时发生angle度变化
-
turtle.goto(x,y)、setpos(x,y)、setposition(x,y):由当前坐标前往指定坐标,这里使用绝对坐标,但画笔方向不会改变
5.3 方向控制函数
-
turtle.setheading(angle) 或者 turtle.seth(angle):以绝对角度改变方向
-
turtle.left(angle) 或者 turtle.lt(angle):以海龟角度向左改变方向
-
turtle.right(angle) 或者 turtle.rt(angle):以海龟角度向右改变方向文章来源:https://www.toymoban.com/news/detail-407590.html
6. 绘图实例
6.1 绘制一个正方形
import turtle
turtle.pensize(2)
for i in range(4):
turtle.fd(150)
turtle.left(90)
turtle.done()
6.2 绘制一个正六边形
import turtle
turtle.pensize(2)
for i in range(6):
turtle.fd(150)
turtle.left(60)
turtle.done()
END:声明
博客内容不得用于商业用途,仅做学习交流。部分配图来自于中国大学MOOC网北理工嵩天老师的《Python语言程序》课程。
课程传送门:《Python语言程序设计》文章来源地址https://www.toymoban.com/news/detail-407590.html
到了这里,关于Python Turtle库详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!