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中的map()函数和reduce()函数的用法
Apr 27 Python
Python中利用sorted()函数排序的简单教程
Apr 27 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
Python实现图片转字符画的示例代码
Aug 21 Python
python实现音乐下载器
Apr 15 Python
Python读取本地文件并解析网页元素的方法
May 21 Python
Python中输入和输出(打印)数据实例方法
Oct 13 Python
python sklearn常用分类算法模型的调用
Oct 16 Python
pandas的相关系数与协方差实例
Dec 27 Python
Pytorch 多块GPU的使用详解
Dec 31 Python
Python通过VGG16模型实现图像风格转换操作详解
Jan 16 Python
一文解决django 2.2与mysql兼容性问题
Jul 15 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
判断PHP数组是否为空的代码
2011/09/08 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
php结合正则获取字符串中数字
2015/06/19 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
extjs DataReader、JsonReader、XmlReader的构造方法
2009/11/07 Javascript
9个JavaScript评级/投票插件
2010/01/18 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
理解Javascript的call、apply
2015/12/16 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
jquery 遍历数组 each 方法详解
2016/05/25 Javascript
Angular2入门--架构总览
2017/03/29 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
Vue封装的可编辑表格插件方法
2018/08/28 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
2018/09/18 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
[48:11]完美世界DOTA2联赛 Magma vs GXR 第二场 11.07
2020/11/10 DOTA
[43:24]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.12
2020/12/17 DOTA
python实现数通设备端口监控示例
2014/04/02 Python
简单分析Python中用fork()函数生成的子进程
2015/05/04 Python
Python中subprocess的简单使用示例
2015/07/28 Python
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
Python Numpy库datetime类型的处理详解
2019/07/13 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
如何在sublime编辑器中安装python
2020/05/20 Python
Cynthia Rowley官网:全球领先的生活方式品牌
2020/10/27 全球购物
酒店应聘自荐信
2013/11/09 职场文书
企业领导班子四风对照检查材料
2014/09/27 职场文书
教师反邪教心得体会
2016/01/15 职场文书
一文搞懂php的垃圾回收机制
2021/06/18 PHP
Python办公自动化PPT批量转换操作
2021/09/15 Python
python实现学员管理系统(面向对象版)
2022/06/05 Python
Redis唯一ID生成器的实现
2022/07/07 Redis