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连接池实现示例程序
Nov 26 Python
Python3 处理JSON的实例详解
Oct 29 Python
Python实现调度算法代码详解
Dec 01 Python
python画折线图的程序
Jul 26 Python
Django实现表单验证
Sep 08 Python
Django实现单用户登录的方法示例
Mar 28 Python
Python3.5模块的定义、导入、优化操作图文详解
Apr 27 Python
Python+appium框架原生代码实现App自动化测试详解
Mar 06 Python
Python网页解析器使用实例详解
May 30 Python
利用Python判断整数是否是回文数的3种方法总结
Jul 07 Python
用Python实现屏幕截图详解
Jan 22 Python
pycharm无法安装cv2模块问题
May 20 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
thinkphp连贯操作实例分析
2014/11/22 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
JavaScript浏览器选项卡效果
2010/08/25 Javascript
jQuery的deferred对象详解
2014/11/12 Javascript
Jquery网页内滑动缓冲导航的实现代码
2015/04/05 Javascript
JavaScript的jQuery库中function的存在和参数问题
2015/08/13 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
2018/10/26 Javascript
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
2020/07/28 Javascript
Python 读写文件和file对象的方法(推荐)
2016/09/12 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
Django框架之DRF 基于mixins来封装的视图详解
2019/07/23 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
对tensorflow 中tile函数的使用详解
2020/02/07 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
Python pysnmp使用方法及代码实例
2020/08/24 Python
python中如何使用虚拟环境
2020/10/14 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
CSS3实现水平居中、垂直居中、水平垂直居中的实例代码
2020/02/27 HTML / CSS
银行实习自我鉴定
2013/10/12 职场文书
物理系毕业生自荐信
2013/11/01 职场文书
项目总经理岗位职责
2014/02/14 职场文书
致垒球运动员加油稿
2014/02/16 职场文书
优秀的2014年两会精神解读
2014/03/17 职场文书
2015年师德师风自我评价范文
2015/03/05 职场文书
面试中老生常谈的MySQL问答集锦夯实基础
2022/03/13 MySQL
Python+tkinter实现高清图片保存
2022/03/13 Python
Android Rxjava3 使用场景详解
2022/04/07 Java/Android