使用Python的turtle模块画图的方法


Posted in Python onNovember 15, 2017

简介:turtle是一个简单的绘图工具。它提供了一个海龟,你可以把它理解为一个机器人,只听得懂有限的指令。

1.在文件头写上如下行,这能让我们在语句中插入中文

#-*-coding:utf-8-*-

2.用importturtle导入turtle库

3.绘图窗口的原点(0,0)在正中间。默认情况下,海龟向正右方移动。

4.操纵海龟绘图有着许多的命令,这些命令可以划分为两种:一种为运动命令,一种为画笔控制命令

(1)运动命令:

forward(d) 向前移动距离d代表距离
backward(d) 向后移动距离d代表距离
right(degree) 向右转动多少度
left(degree) 向左转动多少度
goto(x,y) 将画笔移动到坐标为(x,y)的位置
stamp() 绘制当前图形
speed(speed) 画笔绘制的速度范围[0,10]整数

(2)画笔控制命令:

down() 画笔落下,移动时绘制图形
up() 画笔抬起,移动时不绘制图形
setheading(degree) 海龟朝向,degree代表角度
reset() 恢复所有设置
pensize(width) 画笔的宽度
pencolor(colorstring) 画笔的颜色
fillcolor(colorstring) 绘制图形的填充颜色
fill(Ture)  
fill(False)  
circle(radius, extent) 绘制一个圆形,其中radius为半径,extent为度数,例如若extent为180,则画一个半圆;如要画一个圆形,可不必写第二个参数

使用Python的turtle(海龟)模块画图

第一步:让Python引入turtle模块,引入模块就是告诉Python你想要用它。

importturtle

第二步:创建画布。调用turtle中的Pen函数。

t=turtle.Pen()

使用Python的turtle模块画图的方法

第三步:移动海龟。

t.forward(50)

forward的中文意思是“向前地;促进”。所以这行代码的意思是海龟向前移动50个像素:

使用Python的turtle模块画图的方法

t.left(90)

让海龟左转90度

使用Python的turtle模块画图的方法

现在我们可以尝试画一个方块,思路就是前进-转向90度-前进,循环四次。

>>> t.forward(50)
>>> t.left(90)
>>> t.forward(50)
>>> t.left(90)
>>> t.forward(50)
>>> t.left(90)
>>> t,forward(50)
>>> t.left(90)
>>> t,forward(50)

效果如下:

使用Python的turtle模块画图的方法

第四步:擦除画布。

>>>t.reset()

重置命令(reset)这会清除画布并把海龟放回开始的位置。

>>>t.clear()

清除命令(clear)只清除屏幕,海龟仍停留在原位。

我们还可以让海龟向右(right)转,或者让它后退(backward)。我们可以用向上(up)来把笔从纸上抬起来(换句话说就是让海龟停止作画),用向下(down)来开始作画。

下面我们综合运用一下,画两条线。

>>> t.reset() //擦除画布并把海龟移回到开始位置
>>> t.backward(100) //后退100个像素
>>> t.up() // 抬笔不再作画
>>> t.right(90) //向右转90度
>>> t.forward(20) //前进20个像素
>>> t.left(90) //向左转90度
>>> t.down() //下笔准备作画
>>> t.forward(100) //前进100个像素

效果如下:

使用Python的turtle模块画图的方法

总结

刚开始学用turtle模块作画,感觉就像小学刚开始作画一样。从前是拿起笔直接在纸上画,到现在使用Python作画时,感觉是把从前作画的动作分解开:准备画布——拿起笔准备作画——开始作画——放下笔不再作画。感觉很有趣,慢慢来,这才只是刚开始。

以上就是本文关于使用Python的turtle模块画图的方法的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

如有不足之处,欢迎留言指出。

Python 相关文章推荐
详解Python网络爬虫功能的基本写法
Jan 28 Python
解决PyCharm中光标变粗的问题
Aug 05 Python
Python读取文件内容的三种常用方式及效率比较
Oct 07 Python
Python装饰器用法实例总结
Feb 07 Python
python批量读取txt文件为DataFrame的方法
Apr 03 Python
通过python顺序修改文件名字的方法
Jul 11 Python
tensorflow实现逻辑回归模型
Sep 08 Python
python issubclass 和 isinstance函数
Jul 25 Python
python实现文件批量编码转换及注意事项
Oct 14 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
Dec 27 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
Apr 24 Python
Python函数参数定义及传递方式解析
Jun 10 Python
python绘制铅球的运行轨迹代码分享
Nov 14 #Python
Python实现句子翻译功能
Nov 14 #Python
简述:我为什么选择Python而不是Matlab和R语言
Nov 14 #Python
Python与R语言的简要对比
Nov 14 #Python
Python基础语言学习笔记总结(精华)
Nov 14 #Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
Nov 14 #Python
python中os和sys模块的区别与常用方法总结
Nov 14 #Python
You might like
全世界最小的php网页木马一枚 附PHP木马的防范方法
2009/10/09 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
PHP生成随机密码类分享
2014/06/25 PHP
phpstorm配置Xdebug进行调试PHP教程
2014/12/01 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
PHP开发实现微信退款功能示例
2017/11/25 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
msn上的tab功能Firefox对childNodes处理的一个BUG
2008/01/21 Javascript
IE与FireFox中的childNodes区别
2011/10/20 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
2016/06/13 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
2017/07/17 Javascript
jQuery使用zTree插件实现可拖拽的树示例
2017/09/23 jQuery
基于 D3.js 绘制动态进度条的实例详解
2018/02/26 Javascript
Angular父组件调用子组件的方法
2018/04/02 Javascript
vue动态改变背景图片demo分享
2018/09/13 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
Python基于hashlib模块的文件MD5一致性加密验证示例
2018/02/10 Python
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
anaconda中更改python版本的方法步骤
2019/07/14 Python
PIL对上传到Django的图片进行处理并保存的实例
2019/08/07 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
Win10里python3创建虚拟环境的步骤
2020/01/31 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
python 装饰器的使用示例
2020/10/10 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
斯洛伐克香水和化妆品购物网站:Parfemy-Elnino.sk
2020/01/28 全球购物
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
《最大的“书”》教学反思
2014/02/14 职场文书
银行贷款委托书范本
2014/10/11 职场文书
大学生暑期实践报告
2015/07/13 职场文书
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android