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 相关文章推荐
TensorFLow用Saver保存和恢复变量
Mar 10 Python
python操作xlsx文件的包openpyxl实例
May 03 Python
python自定义函数实现一个数的三次方计算方法
Jan 20 Python
Python+PyQt5实现美剧爬虫可视工具的方法
Apr 25 Python
对django views中 request, response的常用操作详解
Jul 17 Python
超简单的Python HTTP服务
Jul 22 Python
python3字符串操作总结
Jul 24 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
Feb 20 Python
pycharm设置默认的UTF-8编码模式的方法详解
Jun 01 Python
python报错: 'list' object has no attribute 'shape'的解决
Jul 15 Python
Python中免验证跳转到内容页的实例代码
Oct 23 Python
python 获取计算机的网卡信息
Feb 18 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 之 没有mysql支持时的替代方案
2006/10/09 PHP
php程序总是提示验证码输入有误解决方案
2015/01/07 PHP
PHP SESSION的增加、删除、修改、查看操作
2015/03/20 PHP
Yii中Model(模型)的创建及使用方法
2015/12/28 PHP
PHP 获取指定地区的天气实例代码
2017/02/08 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
2019/05/21 PHP
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
2013/01/18 Javascript
node.js中的events.emitter.listeners方法使用说明
2014/12/10 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
使用JavaScript判断手机浏览器是横屏还是竖屏问题
2016/08/02 Javascript
js实现交通灯效果
2017/01/13 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
Webpack性能优化 DLL 用法详解
2017/08/10 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
在Vue中获取组件声明时的name属性方法
2018/09/12 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
2019/04/11 Javascript
详解vue更改头像功能实现
2019/04/28 Javascript
使用typescript构建Vue应用的实现
2019/08/26 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
[46:44]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python中的hashlib和base64加密模块使用实例
2014/09/02 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
在python中做正态性检验示例
2019/12/09 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
基于Python测试程序是否有错误
2020/05/16 Python
Python机器学习工具scikit-learn的使用笔记
2021/01/28 Python
草莓网化妆品澳大利亚站:Strawberrynet AU
2017/12/18 全球购物
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
2014年计算机专业个人自我评价
2014/01/19 职场文书
网站创业计划书
2014/04/30 职场文书
2014年教师党员公开承诺书
2014/05/28 职场文书
运动会广播稿50字-100字
2014/10/11 职场文书
签订劳动合同通知书
2015/04/16 职场文书
2015年新教师工作总结
2015/04/28 职场文书
解除租赁合同协议书
2016/03/21 职场文书
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
2021/06/04 Oracle