Python中turtle作图示例


Posted in Python onNovember 15, 2017

在Python里,海龟不仅可以画简单的黑线,还可以用它画更复杂的几何图形,用不同的颜色,甚至还可以给形状填色。

一、从基本的正方形开始

引入turtle模块并创建Pen对象:

>>> import turtle
>>> t = turtle.Pen()

前面我们用来创建正方形的代码如下:

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

此段代码太长,我们可以用for循环进行优化:

>>> t.reset()
>>> for x in range(1,5):
  t.forward(50)
  t.left(90)

效果如下:

Python中turtle作图示例

二、画星星

我们只需把for循环做一些改动即可,代码如下:

>>> t.reset()
>>> for x in range(1,9):  ##循环八次
  t.forward(100)   ##前进100像素
  t.left(225)     ##向左旋转225度

效果如下:

Python中turtle作图示例

然而我们还可以进一步改进,比如每次旋转175度,循环37次,代码如下:

>>> t.reset()
>>> for x in range(1,38):
  t.forward(100)
  t.left(175)

效果如下:

Python中turtle作图示例

我们还可以画螺旋星,代码如下:

>>> t.reset()
>>> for x in range(1,20):
  t.forward(100)
  t.left(95)

效果如下:

Python中turtle作图示例

现在让我们用if语句控制海龟的转向来绘制不同的星星。让海龟先转一个角度,然后下一次转一个不同的角度。

在这里,我们先创建一个运行18次的循环(range(1,19)),然后让海龟向前移动100个像素(t.forward(100))。接下来是if语句(ifx%2 == 0),它的意思是:x除以2的余数是否等于0.如果x中的数字是偶数,我们让海龟左转175度(t.left(175)),否则(else)我们让它左转225度。代码如下:

>>> t.reset()
>>> for x in range(1,19):
  t.forward(100)
  if x % 2 == 0:
    t.left(175)
  else:
    t.left(225)

效果如下:

Python中turtle作图示例

三,画汽车

试着画一辆小汽车,给自己树立一个小目标,说不定哪一天就实现了。

(这段代码新增了color,begin_fill,end_fill,circle,setheading函数)

>>> import turtle
>>> t = turtle.Pen()
>>> t.color(1,0,0)
>>> t.begin_fill()
>>> t.forward(100)
>>> t.left(90)
>>> t.forward(20)
>>> t.left(90)
>>> t.forward(20)
>>> t.right(90)
>>> t.forward(20)
>>> t.left(90)
>>> t.forward(60)
>>> t.left(90)
>>> t.forward(20)
>>> t.right(90)
>>> t.forward(20)
>>> t.left(90)
>>> t.forward(20)
>>> t.end_fill()

车身
>>> t.color(0,0,0)
>>> t.up()
>>> t.forward(10)
>>> t.down()
>>> t.begin_fill()
>>> t.circle(10)
>>> t.end_fill()

左车轮
>>> t.setheading(0)
>>> t.up()
>>> t.forward(90)
>>> t.right(90)
>>> t.forward(10)
>>> t.setheading(0)
>>> t.begin_fill()
>>> t.down()
>>> t.circle(10)
>>> t.end_fill()

右车轮

整合后效果如下:

Python中turtle作图示例

下面来集中介绍下新增的几个函数:

1,color是用来改变画笔颜色的。

2,begin_fill和end_fill是用来给画布上的一个区域填色的。

3,circle是用来画一个指定大小的圆。

4,setheading让海龟面向指定的方向。

总结:

这次比上次更深入的运用了Python的turtle模块来画几个基本的几何图形,还有for循环和if语句来控制海龟在屏幕上的动作。同时改变了海龟的笔的颜色并给它所画的形状填色。接下来将开始学习填色。

以上就是本文关于Python中turtle作图示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

如有不足之处,欢迎留言指出。期待您的宝贵意见。

Python 相关文章推荐
python数据结构之二叉树的建立实例
Apr 29 Python
将Python中的数据存储到系统本地的简单方法
Apr 11 Python
在Python中使用HTML模版的教程
Apr 29 Python
python结合opencv实现人脸检测与跟踪
Jun 08 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
Feb 10 Python
pandas 数据实现行间计算的方法
Jun 08 Python
PyCharm 创建指定版本的 Django(超详图解教程)
Jun 18 Python
Python3之不使用第三方变量,实现交换两个变量的值
Jun 26 Python
python mqtt 客户端的实现代码实例
Sep 25 Python
vue学习笔记之动态组件和v-once指令简单示例
Feb 29 Python
Python 忽略文件名编码的方法
Aug 01 Python
python 中的@运算符使用
May 26 Python
Django原生sql也能使用Paginator分页的示例代码
Nov 15 #Python
使用Python的turtle模块画图的方法
Nov 15 #Python
python绘制铅球的运行轨迹代码分享
Nov 14 #Python
Python实现句子翻译功能
Nov 14 #Python
简述:我为什么选择Python而不是Matlab和R语言
Nov 14 #Python
Python与R语言的简要对比
Nov 14 #Python
Python基础语言学习笔记总结(精华)
Nov 14 #Python
You might like
索尼SONY SRF-S83/84电路分析和打磨
2021/03/02 无线电
对squid中refresh_pattern的一些理解和建议
2009/04/17 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
2012/05/07 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
php判断对象是派生自哪个类的方法
2015/06/20 PHP
PHP递归遍历多维数组实现无限分类的方法
2016/05/06 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
2011/11/21 Javascript
JavaScript实现select添加option
2015/07/03 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
一款简单的jQuery图片标注效果附源码下载
2016/03/22 Javascript
JS实现的表格行上下移动操作示例
2016/08/03 Javascript
js实现各种复制到剪贴板的方法(分享)
2016/10/27 Javascript
关于Google发布的JavaScript代码规范你要知道哪些
2018/04/04 Javascript
Vue利用History记录上一页面的数据方法实例
2018/11/02 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
2018/11/08 Javascript
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
python3判断url链接是否为404的方法
2018/08/10 Python
python获取服务器响应cookie的实例
2018/12/28 Python
深入了解Python iter() 方法的用法
2019/07/11 Python
django实现类似触发器的功能
2019/11/15 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
介绍一下linux文件系统分配策略
2013/02/25 面试题
公司薪酬管理制度
2014/01/31 职场文书
2014新课程改革心得体会
2014/03/10 职场文书
社会实践先进工作者事迹材料
2014/05/06 职场文书
工商管理专业毕业生求职信
2014/05/26 职场文书
欢迎领导检查标语
2014/06/27 职场文书
建筑安全责任书范本
2014/07/24 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server