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使用LDAP做用户认证的方法
Jun 20 Python
Python批量查询关键词微信指数实例方法
Jun 27 Python
opencv之为图像添加边界的方法示例
Dec 26 Python
Python实现银行账户资金交易管理系统
Jan 03 Python
Python qrcode 生成一个二维码的实例详解
Feb 12 Python
python异常处理、自定义异常、断言原理与用法分析
Mar 23 Python
使用pycharm和pylint检查python代码规范操作
Jun 09 Python
浅谈Python爬虫原理与数据抓取
Jul 21 Python
详解python内置模块urllib
Sep 09 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
Oct 15 Python
Python基于Opencv识别两张相似图片
Apr 25 Python
Python基础之操作MySQL数据库
May 06 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
复杂检索数据并分页显示的处理方法
2006/10/09 PHP
如何使用脚本模仿登陆过程
2006/11/22 PHP
php微信公众号开发模式详解
2016/11/28 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
laravel自定义分页效果
2017/07/23 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
用javascript实现给出的盒子的序列是否可连为一矩型
2007/08/30 Javascript
javascript中setTimeout的问题解决方法
2014/05/08 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
2014/06/15 Javascript
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
jQuery检测返回值的数据类型
2015/07/13 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
用原生js统计文本行数的简单示例
2016/08/19 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
puppeteer库入门初探
2019/01/09 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
vue之a-table中实现清空选中的数据
2019/11/07 Javascript
JS实现轮播图效果
2020/01/11 Javascript
[54:10]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
Python中使用第三方库xlrd来写入Excel文件示例
2015/04/05 Python
python实现统计代码行数的方法
2015/05/22 Python
python杀死一个线程的方法
2015/09/06 Python
Python实现对adb命令封装
2020/03/06 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
canvas实现烟花的示例代码
2020/01/16 HTML / CSS
大学军训感言200字
2014/02/26 职场文书
无传销社区工作方案
2014/05/13 职场文书
优秀团员事迹材料
2014/12/25 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书
八一建军节主持词
2015/07/01 职场文书
JavaScript分页组件使用方法详解
2021/07/26 Javascript
如何用六步教会你使用python爬虫爬取数据
2022/04/06 Python