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实现Floyd算法
Jan 03 Python
Python实现PS图像调整黑白效果示例
Jan 25 Python
python利用高阶函数实现剪枝函数
Mar 20 Python
对命令行模式与python交互模式介绍
May 12 Python
python实现字符串和字典的转换
Sep 29 Python
python 多线程重启方法
Feb 18 Python
python中的print()输出
Apr 12 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
Jul 11 Python
在pycharm下设置自己的个性模版方法
Jul 15 Python
python实现KNN分类算法
Oct 16 Python
Python绘制全球疫情变化地图的实例代码
Apr 20 Python
Django修改app名称和数据表迁移方案实现
Sep 17 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
轻松修复Discuz!数据库
2008/05/03 PHP
php使用curl存储cookie的示例
2014/03/31 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
PHP文件与目录操作示例
2016/12/24 PHP
JavaScipt基本教程之前言
2008/01/16 Javascript
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
分享20个提升网站界面体验的jQuery插件
2014/12/15 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
2015/04/24 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
实例详解jQuery的无new构建
2016/08/02 Javascript
NodeJS配置HTTPS服务实例分享
2017/02/19 NodeJs
ES6正则表达式的一些新功能总结
2017/05/09 Javascript
JavaScript操作文件_动力节点Java学院整理
2017/06/30 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
对vue.js中this.$emit的深入理解
2018/02/23 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
js实现自动播放匀速轮播图
2020/02/06 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
详解Vue中的Props与Data细微差别
2020/03/02 Javascript
js利用拖放实现添加删除
2020/08/27 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
Python中的pprint折腾记
2015/01/21 Python
在Python的Flask框架中实现单元测试的教程
2015/04/20 Python
Python工程师面试必备25条知识点
2018/01/17 Python
PyQt5每天必学之切换按钮
2020/08/20 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
Python调用.NET库的方法步骤
2019/12/27 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
Python 如何实现访问者模式
2020/07/28 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
如何一键升级Python所有包
2020/11/05 Python
台湾线上百货零售购物平台:friDay购物
2017/08/18 全球购物
2014年作风建设工作总结
2014/10/29 职场文书
z-index不起作用
2021/03/31 HTML / CSS