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版微信红包分配算法
May 04 Python
简单了解Python下用于监视文件系统的pyinotify包
Nov 13 Python
python如何实现远程控制电脑(结合微信)
Dec 21 Python
基于pycharm导入模块显示不存在的解决方法
Oct 13 Python
Django 路由控制的实现代码
Nov 08 Python
Flask中endpoint的理解(小结)
Dec 11 Python
Python环境下安装PyGame和PyOpenGL的方法
Mar 25 Python
tensorflow 大于某个值为1,小于为0的实例
Jun 30 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
Aug 07 Python
Python如何把字典写入到CSV文件的方法示例
Aug 23 Python
python 密码学示例——理解哈希(Hash)算法
Sep 21 Python
Python实现PIL图像处理库绘制国际象棋棋盘
Jul 16 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程序的国际化实现方法(利用gettext)
2011/08/14 PHP
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
2010/05/10 Javascript
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
2010/05/22 Javascript
使用js正则控制input标签只允许输入的值
2013/07/29 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
2013/11/19 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
Angular2环境搭建具体操作步骤(推荐)
2017/08/04 Javascript
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
vue select选择框数据变化监听方法
2018/08/24 Javascript
Angular6 Filter实现页面搜索的示例代码
2018/12/02 Javascript
Typescript的三种运行方式(小结)
2019/09/18 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
利用node.js开发cli的完整步骤
2020/12/29 Javascript
python re正则表达式模块(Regular Expression)
2014/07/16 Python
python xlsxwriter创建excel图表的方法
2018/06/11 Python
python实现将读入的多维list转为一维list的方法
2018/06/28 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
钉钉群自定义机器人消息Python封装的实例
2019/02/20 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
python 默认参数相关知识详解
2019/09/18 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
Django调用支付宝接口代码实例详解
2020/04/04 Python
浅谈Python中的字符串
2020/06/10 Python
Python定义一个Actor任务
2020/07/29 Python
python用opencv 图像傅里叶变换
2021/01/04 Python
民事诉讼代理委托书
2014/10/08 职场文书
小学母亲节活动总结
2015/02/10 职场文书
pytorch 如何使用float64训练
2021/05/24 Python