Python Turtle库详解

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):以海龟角度向右改变方向

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语言程序设计》

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年3月5日 下午5:05
下一篇 2023年3月5日 下午5:06

相关推荐