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实现巡检系统(solaris)示例
Apr 02 Python
python实现的udp协议Server和Client代码实例
Jun 04 Python
python使用正则表达式的search()函数实现指定位置搜索功能
Nov 10 Python
python实现堆和索引堆的代码示例
Mar 19 Python
使用Python制作自动推送微信消息提醒的备忘录功能
Sep 06 Python
使用WingPro 7 设置Python路径的方法
Jul 24 Python
对django后台admin下拉框进行过滤的实例
Jul 26 Python
python FTP批量下载/删除/上传实例
Dec 22 Python
python实现引用其他路径包里面的模块
Mar 09 Python
Python 执行矩阵与线性代数运算
Aug 01 Python
详解Python openpyxl库的基本应用
Feb 26 Python
Python办公自动化解决world文件批量转换
Sep 15 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
第一节--面向对象编程
2006/11/16 PHP
PHP SQLite类
2009/05/07 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
用来解析.htpasswd文件的PHP类
2012/09/05 PHP
thinkPHP简单调用函数与类库的方法
2017/03/15 PHP
PHP实现的二分查找算法实例分析
2017/12/19 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
jQuery的Ajax时无响应数据的解决方法
2010/05/25 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
js 判断上传文件大小及格式代码
2013/11/13 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
Javascript实现多彩雪花从天降散落效果的方法
2015/02/02 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
基于jQuery实现的无刷新表格分页实例
2016/02/17 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
2016/06/14 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
2018/10/18 Javascript
vue自动路由-单页面项目(非build时构建)
2019/04/30 Javascript
virtualenv 指定 python 解释器的版本方法
2018/10/25 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
django的csrf实现过程详解
2019/07/26 Python
详解python中的数据类型和控制流
2019/08/08 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
python使用pymongo与MongoDB基本交互操作示例
2020/04/09 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
2020/09/25 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
2021/01/12 Python
医生进修自我鉴定
2014/01/19 职场文书
中学劳技课教师的自我评价
2014/02/05 职场文书
岗位聘任协议书
2015/09/21 职场文书
Python中with上下文管理协议的作用及用法
2022/03/18 Python