Python实现七彩蟒蛇绘制实例代码


Posted in Python onJanuary 16, 2018

本文主要研究的是Python编程turtle的实例,绘制一个七彩蟒蛇。。具体如下。

第2周的课后练习里,有一道题目,要求修改“蟒蛇绘制”程序,对Python 蟒蛇的每个部分采用不同颜色,绘制一条彩色蟒蛇。

原蟒蛇绘制程序如下:

因为刚开始学Python,不太熟悉,所以自己加了一些注释,方便理解。

#蟒蛇绘制
import turtle

def drawSnake(rad,angle,len,neckrad):
  for i in range(len):
    turtle.circle(rad,angle) #画圆 rad:圆半径 angle:圆弧度
    turtle.circle(-rad,angle) #运行轨迹右侧rad远的地方绘制圆
  turtle.circle(rad,angle/2)
  turtle.fd(rad) #表示直线爬行,forward,参数表示爬行的距离
  turtle.circle(neckrad+1,180)
  turtle.fd(rad*2/3)

def main():
  turtle.setup(1300,800,0,0) #设置窗口宽+高+起始位置
  pythonsize = 30
  turtle.pensize(pythonsize) #设置笔的宽度
  turtle.pencolor("blue") #设置笔的颜色
  turtle.seth(-40) #设置笔的起始角度
  drawSnake(40,80,5,pythonsize/2)

通过仔细分析了该代码,发现这段代码中画笔的颜色,是通过pencolor()来设置,如果想要将颜色变为彩色,显然不能再用这种方法,因此我想到了用列表来解决这个问题,于是在drawSnake里创建一个名为colors的列表变量并且在列表中放置6种颜色,如下所示:

colors = [“red”,”orange”,”yellow”,”green”,”cyan”,”blue”]

在此之前呢,因为原先的程序里,len的值是5,因此画出来的蟒蛇的身体只有五部分,为了显示为七彩,特地将len的值改为6.

在for循环里,在绘画之前,增加了一条语句,用来设置画笔的颜色:

turtle.color(colors[i])

colors[i]中,i和for循环里的是同一个变量,当i从0变化到5,相应的,color()就会从前面所添加的、名为colors的颜色名称列表中选取一种颜色,设置为画笔的颜色。

而蟒蛇的头部,则利用turtle.color(“purple”)设置为第7种颜色。

运行之后,我发现turtle每次绘图,都是从画板的中心开始的,我觉得不太好看,于是想找到一种方法能够改变绘图的起点,目前我找到的方法是,利用penup(),goto(),pendown()命令来改变画笔起点的位置,如下所示:

turtle.penup()
turtle.goto(-350,0)
turtle.pendown()

如果后续再发现更好的方法,再更新。

一条七彩的蟒蛇就绘制好啦~

#蟒蛇绘制
import turtle

def drawSnake(rad,angle,len,neckrad):

  colors = ["red","orange","yellow","green","cyan","blue"]
  for i in range(len):
    turtle.color(colors[i])
    turtle.circle(rad,angle)
    turtle.circle(-rad,angle)

  turtle.color("purple")
  turtle.circle(rad,angle/2)
  turtle.fd(rad)
  turtle.circle(neckrad+1,180)
  turtle.fd(rad*2/3)

def main():
  turtle.setup(1300,800,0,0)
  turtle.penup()
  turtle.goto(-350,0)
  turtle.pendown()
  pythonsize = 30
  turtle.pensize(pythonsize)
  turtle.seth(-40)
  drawSnake(40,80,6,pythonsize/2)

main()

结果展示:

Python实现七彩蟒蛇绘制实例代码

总结

以上就是本文关于Python实现七彩蟒蛇绘制实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python处理json字符串转化为字典的简单实现
Jul 07 Python
Python正则表达式完全指南
May 25 Python
python 实现数组list 添加、修改、删除的方法
Apr 04 Python
python selenium 对浏览器标签页进行关闭和切换的方法
May 21 Python
Python二叉树的镜像转换实现方法示例
Mar 06 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
Mar 30 Python
python爬虫 urllib模块反爬虫机制UA详解
Aug 20 Python
在Python中画图(基于Jupyter notebook的魔法函数)
Oct 28 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
Jan 08 Python
jupyter notebook 实现matplotlib图动态刷新
Apr 22 Python
Python爬虫HTPP请求方法有哪些
Jun 03 Python
Python如何急速下载第三方库详解
Nov 02 Python
答题辅助python代码实现
Jan 16 #Python
python实现百万答题自动百度搜索答案
Jan 16 #Python
Python数据结构之双向链表的定义与使用方法示例
Jan 16 #Python
python+pillow绘制矩阵盖尔圆简单实例
Jan 16 #Python
Python面向对象编程之继承与多态详解
Jan 16 #Python
Python基于socket实现简单的即时通讯功能示例
Jan 16 #Python
python中将字典形式的数据循环插入Excel
Jan 16 #Python
You might like
全国FM电台频率大全 - 25 云南省
2020/03/11 无线电
php 调用远程url的六种方法小结
2009/11/02 PHP
PHP array 的加法操作代码
2010/07/24 PHP
php中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
Yii框架应用组件用法实例分析
2020/05/15 PHP
在JavaScript中通过URL传递汉字的方法
2007/04/09 Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
2015/11/18 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
原生js轮播特效
2017/05/18 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
小程序实现左滑删除功能
2018/10/30 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
[04:07]显微镜下的DOTA2第八期——英雄复活动作
2014/06/24 DOTA
详解Python使用simplejson模块解析JSON的方法
2016/03/24 Python
python基于phantomjs实现导入图片
2016/05/13 Python
Django实现简单分页功能的方法详解
2017/12/05 Python
Python数据结构之图的应用示例
2018/05/11 Python
Python基于mysql实现学生管理系统
2019/02/21 Python
python读写配置文件操作示例
2019/07/03 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
Pytorch 实现自定义参数层的例子
2019/08/17 Python
pytorch实现mnist分类的示例讲解
2020/01/10 Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
2020/03/13 Python
Python命令行参数argv和argparse该如何使用
2021/02/08 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
基于 HTML5 WebGL 实现的医疗物流系统
2019/10/08 HTML / CSS
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
天坛导游词
2015/02/02 职场文书
2015年幼儿园中班工作总结
2015/04/25 职场文书
海底两万里读书笔记
2015/06/26 职场文书
小学安全教育主题班会
2015/08/12 职场文书
三好学生竞选稿
2015/11/21 职场文书
SpringMVC 整合SSM框架详解
2021/08/30 Java/Android