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

Python Turtle库详解相关推荐

  1. pythonturtle库函数详解_Python turtle库详解

    Python turtle库详解 Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在 ...

  2. python如何设置画布开始位置_Python绘图篇——Turtle库详解(一)

    交流学习python编程技术及行业动态,点击上方"蓝字"关注我们 Python绘图篇--Turtle库详解(一) 写在前面 ↓ 注:本教程基于64位windows系统(鼠标右键点击 ...

  3. python re库 详解(正则表达式)

    python re库 详解(正则表达式) 说明 则表达式(英文名称:regular expression,regex,RE)是用来简洁表达一组字符串特征的表达式.最主要应用在字符串匹配中. 1).re ...

  4. Python Urllib库详解

    Urllib库详解 什么是Urllib? Python内置的HTTP请求库 urllib.request 请求模块 urllib.error 异常处理模块 urllib.parse url解析模块 u ...

  5. python turtle循环图案-Python绘图Turtle库详解

    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行 ...

  6. python里自带的绘画库是_Python绘图Turtle库详解

    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行 ...

  7. Python画图库Turtle库详解篇

    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行 ...

  8. python库怎么绘画_Python绘图Turtle库详解

    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行 ...

  9. python解析库详解_PyQuery库详解

    通过这篇文章为大家介绍崔庆才老师对Python爬虫PyQuery库的讲解,包括基本原理及其理论知识点 本文代码较多,建议阅读时间10分钟,并且注重理论与实践相结合 觉得文章比较枯燥和用电脑观看的可以点 ...

  10. python requests库详解_python爬虫之路(一)-----requests库详解

    requests库 requests库是python实现的最简单易用的http库. requests库的功能详解. 我们可以自然而然地想到这些方法其实就是http协议对资源的操作. 调用request ...

最新文章

  1. 机器学习分类算法_机器学习分类算法
  2. (SRNTT)Image Super-Resolution by Neural Texture Transfer
  3. vdbench的作用_vdbench和fio测试磁盘性能的对比总结
  4. Hive 整合 HBase
  5. C++自学笔记(3)
  6. Android从无知到有知——NO.6
  7. Ubuntu替换pip源
  8. 76----平面二次曲线的分类、消去二次交叉项、转轴变换、平面二次曲线的不变量、利用不变量确定平面二次曲线的类型和形状
  9. 没解决:MMC不能打开文件MSC可能是由于文件不存在,不是一个MMC控制台,或者用后来的MMC版本创建。也可能你没有访问此文件的足够权限
  10. 台式计算机打字标准手法,电脑打字技巧口诀
  11. Mac系统快捷键大全
  12. 用计算机和电视机组成家庭影院,家庭影院怎么连接电脑_家庭影院连接电脑详解【图文】-太平洋IT百科...
  13. oracle := 和=,oracle中 =: 和 := 分别是什么意思?
  14. nginx配置域名指向ip
  15. linux中reboot函数在哪,reboot()函数 Unix/Linux
  16. Keil MDK5工程文件不可修改(文件符号上带一个黄色的钥匙)
  17. 2022-2-13 转换函数(conversion function) non-explicit-one argument ctor explicit-one argument ctor
  18. ThinkPHP3.2短信验证码 (创蓝253短信验证码)
  19. 马宁伟-20年工作经验谈-4-男怕入错行
  20. GBK 代码集字符定义表

热门文章

  1. 细胞自动机_神经细胞自动机用于艺术娱乐
  2. php对接亿乐社区,亿乐社区对接教程
  3. 区块链实战超级账本视频教程|区块链视频教程
  4. Java 分页计算公式
  5. 如何在Java项目中定义并调用自己编写的native方法?
  6. 史密斯圆图matlab,用MATLAB程序实现Smith圆图的图解过程
  7. 类似Jira的十大项目管理软件
  8. 跟着迪哥学python电子书pdf-跟着迪哥学Python数据分析与机器学习实战
  9. 【视频图片网站源码】苹果cmsV10x影视源码[自适应+20个广告位]
  10. solidity教程:solidity语言入门