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 相关文章推荐
在Django中限制已登录用户的访问的方法
Jul 23 Python
Python实现的密码强度检测器示例
Aug 23 Python
Python实现一个Git日志统计分析的小工具
Dec 14 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
Dec 21 Python
对python字典过滤条件的实例详解
Jan 22 Python
对Python定时任务的启动和停止方法详解
Feb 19 Python
Python OpenCV中的resize()函数的使用
Jun 20 Python
PYQT5实现控制台显示功能的方法
Jun 25 Python
Python进程间通信 multiProcessing Queue队列实现详解
Sep 23 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
Oct 09 Python
python等待10秒执行下一命令的方法
Jul 19 Python
变长双向rnn的正确使用姿势教学
May 31 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
分享PHP入门的学习方法
2007/01/02 PHP
ThinkPHP的I方法使用详解
2014/06/18 PHP
浅谈php提交form表单
2015/07/01 PHP
PHP运行模式汇总
2016/11/06 PHP
PHP编写daemon process 实例详解
2016/11/13 PHP
javascript动画效果类封装代码
2007/08/28 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
Ajax异步提交表单数据的说明及方法实例
2013/06/22 Javascript
javascript实现的DES加密示例
2013/10/30 Javascript
jQuery性能优化的38个建议
2014/03/04 Javascript
学习JavaScript设计模式(接口)
2015/11/26 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
2016/03/16 Javascript
ReactNative实现图片上传功能的示例代码
2017/07/11 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
vue实现抽屉弹窗效果
2020/11/15 Javascript
[05:31]干嘛呢兄弟!DOTA2 TI9语音轮盘部分出处
2019/05/14 DOTA
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
一道python走迷宫算法题
2018/01/22 Python
python3.6的venv模块使用详解
2018/08/01 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
python如何读取bin文件并下发串口
2019/07/05 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
关于python3中setup.py小概念解析
2019/08/22 Python
如何获取Python简单for循环索引
2019/11/21 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
美国第一香水网站:Perfume.com
2017/01/23 全球购物
前处理班长职位说明书
2014/03/01 职场文书
中学生打架检讨书
2014/10/13 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
企业法人代表证明书
2015/06/18 职场文书
Python数据类型最全知识总结
2021/05/31 Python