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实现QQ游戏大家来找茬辅助工具
Sep 14 Python
Python3.2中Print函数用法实例详解
May 19 Python
Python出现segfault错误解决方法
Apr 16 Python
python构建自定义回调函数详解
Jun 20 Python
flask中使用蓝图将路由分开写在不同文件实例解析
Jan 19 Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 Python
python 多线程串行和并行的实例
Feb 22 Python
python3.5 cv2 获取视频特定帧生成jpg图片
Aug 28 Python
Python安装及Pycharm安装使用教程图解
Sep 20 Python
django queryset相加和筛选教程
May 18 Python
keras:model.compile损失函数的用法
Jul 01 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
Nov 28 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 开源框架22个简单简介
2009/08/24 PHP
Cygwin中安装PHP方法步骤
2015/07/04 PHP
PHP PDOStatement::fetchObject讲解
2019/02/01 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
JavaScript游戏之优化篇
2010/11/08 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
2013/03/04 Javascript
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
2014/10/17 Javascript
js实现n秒倒计时后才可以点击的效果
2015/12/20 Javascript
无需 Flash 使用 jQuery 复制文字到剪贴板
2016/04/26 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
2018/03/28 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
2019/02/21 Javascript
如何进行微信公众号开发的本地调试的方法
2019/06/16 Javascript
vue实现购物车小案例
2019/09/27 Javascript
微信小程序wx.request的简单封装
2019/11/13 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
[43:18]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
python实现根据窗口标题调用窗口的方法
2015/03/13 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
OpenCV+Python识别车牌和字符分割的实现
2019/01/31 Python
python实现简单学生信息管理系统
2020/04/09 Python
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
钳工实习自我鉴定
2013/09/19 职场文书
婚纱摄影师求职信
2014/03/07 职场文书
查摆问题自我剖析材料
2014/08/18 职场文书
人事文员岗位职责
2015/02/04 职场文书
自主招生自荐信范文
2015/03/04 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书
暑假打工感想
2015/08/07 职场文书
vue打包时去掉所有的console.log
2022/04/10 Vue.js