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写asp详细讲解
Dec 16 Python
Python闭包实现计数器的方法
May 05 Python
Python中你应该知道的一些内置函数
Mar 31 Python
Python实现图片尺寸缩放脚本
Mar 10 Python
python学生信息管理系统
Mar 13 Python
Python内置函数reversed()用法分析
Mar 20 Python
python实现自动登录
Sep 17 Python
python使用Matplotlib绘制分段函数
Sep 25 Python
Django如何简单快速实现PUT、DELETE方法
Jul 24 Python
Pytorch 保存模型生成图片方式
Jan 10 Python
深入理解Tensorflow中的masking和padding
Feb 24 Python
python+playwright微软自动化工具的使用
Feb 02 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中一个完整表单处理实现代码
2011/11/10 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
PHP跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
使用php的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
PHP下的浮点运算不准的解决方法
2016/10/27 PHP
js 模拟气泡屏保效果代码
2010/07/10 Javascript
JavaScript 模拟类机制及私有变量的方法及思路
2013/07/10 Javascript
js 动态加载事件的几种方法总结
2013/12/25 Javascript
C#中使用迭代器处理等待任务
2015/07/13 Javascript
JavaScript头像上传插件源码分享
2016/03/29 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
javascript函数的四种调用模式
2017/01/08 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
详解Ubuntu安装angular-cli遇到的坑
2018/09/08 Javascript
vue 项目 iOS WKWebView 加载
2019/04/17 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
使用python存储网页上的图片实例
2018/05/22 Python
Python程序暂停的正常处理方法
2019/11/07 Python
解决pycharm同一目录下无法import其他文件
2020/02/12 Python
django 将自带的数据库sqlite3改成mysql实例
2020/07/09 Python
python matplotlib库的基本使用
2020/09/23 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
什么是makefile? 如何编写makefile?
2013/01/02 面试题
陈欧的广告词
2014/03/18 职场文书
计算机软件专业求职信
2014/06/10 职场文书
校车安全责任书
2014/08/25 职场文书
党员自我剖析材料
2014/08/31 职场文书
2015年教师节活动总结
2015/03/20 职场文书
公司禁烟通知
2015/04/23 职场文书
用人单位聘用意向书
2015/05/11 职场文书
珍惜时间的诗歌赏析
2019/08/23 职场文书
Python与C++中梯度方向直方图的实现
2022/03/17 Python