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实现每次处理一个字符的三种方法
Oct 09 Python
Python 登录网站详解及实例
Apr 11 Python
python生成词云的实现方法(推荐)
Jun 13 Python
终端命令查看TensorFlow版本号及路径的方法
Jun 13 Python
idea创建springMVC框架和配置小文件的教程图解
Sep 18 Python
python创建学生成绩管理系统
Nov 22 Python
python 实现多维数组(array)排序
Feb 28 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
Apr 10 Python
python数据类型强制转换实例详解
Jun 22 Python
在 Golang 中实现 Cache::remember 方法详解
Mar 30 Python
Python Pandas读取Excel日期数据的异常处理方法
Feb 28 Python
python+pyhyper实现识别图片中的车牌号思路详解
Dec 24 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
浅析SVN常见问题及解决方法
2013/06/21 PHP
php实现批量下载百度云盘文件例子分享
2014/04/10 PHP
php文件包含的几种方式总结
2019/09/19 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
让复选框只能选择一项的方法
2013/10/08 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
2017/05/17 jQuery
微信小程序之前台循环数据绑定
2017/08/18 Javascript
微信小程序实用代码段(收藏版)
2019/12/17 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
2020/07/20 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
2020/08/14 Javascript
vue 实现图片懒加载功能
2020/12/31 Vue.js
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
python模块简介之有序字典(OrderedDict)
2016/12/01 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
Django添加favicon.ico图标的示例代码
2018/08/07 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
Django框架请求生命周期实现原理
2020/11/13 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
2021/02/22 Python
结合CSS3的新特性来总结垂直居中的实现方法
2016/05/30 HTML / CSS
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
数控专业毕业生求职信范文
2013/09/21 职场文书
硕士生工作推荐信
2014/03/07 职场文书
节约电力资源的建议书
2014/03/12 职场文书
学习雷锋寄语大全
2014/04/11 职场文书
法律专业自荐信
2014/06/03 职场文书
车间核算员岗位职责
2014/07/01 职场文书
2015年元旦联欢晚会活动总结
2014/11/28 职场文书
酒店前台岗位职责
2015/04/16 职场文书
电话营销开场白
2015/05/29 职场文书
Python初识逻辑与if语句及用法大全
2021/08/07 Python
JavaScript函数柯里化
2021/11/07 Javascript
详解Python中__new__方法的作用
2022/03/31 Python
volatile保证可见性及重排序方法
2022/08/05 Java/Android