使用turtle绘制五角星、分形树


Posted in Python onOctober 06, 2019

本文实例为大家分享了使用turtle绘制五角星和分形树的具体代码,供大家参考,具体内容如下

turtle 库

与之前程序的区别:

  • 没有显示的input()与output()
  • 没有赋值语句
  • 大部分语句为<a>.<b>()的形式

表示使用<a>中的方法<b>()
调用函数库<a>中的函数<b>()

形状绘制函数:

turtle.forward(distance)
画笔向前移动distance距离

turtle.backward(distance)
画笔向后移动distance距离

turtle.right(dgree)
绘制方向向右旋转dgree度

turtle.exitonclick()
点击关闭图形窗口

使用turtle绘制五角星、分形树

画笔控制函数:

turtle.penup()抬起画笔,之后移动画笔不绘制

turtle.pendown()落下画笔,之后移动画笔绘制形状

turtle.pensize()设置画笔宽度

turtle.pencolor()设置画笔颜色,常用的颜色:
white,black,grey,darkgreen,vilot,purple

详细API请参考

功能一:

五角星的绘制

"""
 作者:陈洁
 功能:五角星的绘制
 版本:1.0
 日期:04/10/2019
"""
import turtle

def main():
 """
 主函数
 """
 #计数器
 count = 1
 while count<=5:
 turtle.forward(100)
 turtle.right(144)
 count += 1
 turtle.exitonclick()

if __name__ == '__main__':
 main()

遇到困难:

混淆if条件函数与while循环函数

功能二:

加入循环操作绘制重复不同大小的五角星

"""
 作者:陈洁
 功能:五角星的绘制
 版本:2.0
 日期:04/10/2019
 新增功能:加入循环操作绘制重复不同大小的五角星
"""
import turtle


def draw_pentagram(size):
 """
 绘制五角星
 """
 # 计数器
 count = 1
 # 绘制五角星
 while count <= 5:
 turtle.forward(size)
 turtle.right(144)
 count += 1

def main():
 """
 主函数
 """

 turtle.penup()
 turtle.backward(200)
 turtle.pendown()
 turtle.pensize(2)
 turtle.pencolor('red')

 size = 50

 while size<=100:
 #调用函数
 draw_pentagram(size)
 size += 10

 turtle.exitonclick()


if __name__ == '__main__':
 main()

功能三:

使用迭代函数绘制重复不同大小的五角星

注意:设置条件语句if size <= 100: draw_recursive_pentagram(size)

"""
 作者:陈洁
 功能:五角星的绘制
 版本:3.0
 日期:04/10/2019
 新增功能:使用迭代函数绘制重复不同大小的五角星
"""
import turtle
def draw_pentagram(size):
 """
 绘制五角星
 """
def draw_recursive_pentagram(size):
 """
 迭代绘制五角星
 """
 # 计数器
 count = 1
 # 绘制五角星
 while count <= 5:
 turtle.forward(size)
 turtle.right(144)
 count += 1
 #五角星绘制完成,更新参数
 size += 10
 if size <= 100:
 draw_recursive_pentagram(size)
def main():
 """
 主函数
 """
 turtle.penup()
 turtle.backward(200)
 turtle.pendown()
 turtle.pensize(2)
 turtle.pencolor('red')
 size = 50
 draw_recursive_pentagram(size)
if __name__ == '__main__':
 main()

功能四:用迭代函数绘制分形树

"""
 作者:陈洁
 功能:分形树
 版本:1.0
 日期:04/10/2019
 新增功能:使用迭代函数绘制分形树
"""
import turtle
def draw_branch (branch_length):
 """
 绘制分形树
 """
 if branch_length >5:
 #绘制右侧树枝
 turtle.forward(branch_length)
 print('向前绘制',branch_length)
 turtle.right(20)
 print('右转',20)
 draw_branch(branch_length - 15)

 #绘制左侧树枝
 turtle.left(40)
 print('左转',40)
 draw_branch(branch_length - 15)

 #返回之前的树枝
 turtle.right(20)
 print('右转',20)
 turtle.backward(branch_length)
def main():
 """
 主函数
 """
 turtle.left(90)
 turtle.penup()
 turtle.backward(150)
 turtle.pendown()
 draw_branch(100)
 turtle.exitonclick()
if __name__ == '__main__':
 main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
从零学python系列之新版本导入httplib模块报ImportError解决方案
May 23 Python
[原创]Python入门教程4. 元组基本操作
Oct 31 Python
python 删除字符串中连续多个空格并保留一个的方法
Dec 22 Python
把pandas转换int型为str型的方法
Jan 29 Python
Python函数中不定长参数的写法
Feb 13 Python
Python应用领域和就业形势分析总结
May 14 Python
selenium 安装与chromedriver安装的方法步骤
Jun 12 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
Jul 09 Python
windows下的pycharm安装及其设置中文菜单
Apr 23 Python
Python学习笔记之装饰器
Aug 06 Python
VSCODE配置Markdown及Markdown基础语法详解
Jan 19 Python
Python爬虫网络请求之代理服务器和动态Cookies
Apr 12 Python
wxPython:python首选的GUI库实例分享
Oct 05 #Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
Oct 04 #Python
python是否适合网页编程详解
Oct 04 #Python
为什么说Python可以实现所有的算法
Oct 04 #Python
python的命名规则知识点总结
Oct 04 #Python
Python中断多重循环的思路总结
Oct 04 #Python
python将字母转化为数字实例方法
Oct 04 #Python
You might like
php数组应用之比较两个时间的相减排序
2008/08/18 PHP
js实现的真正的iframe高度自适应(兼容IE,FF,Opera)
2010/03/07 Javascript
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
jQuery的text()方法用法分析
2014/12/20 Javascript
《JavaScript DOM 编程艺术》读书笔记之DOM基础
2015/01/09 Javascript
jQuery常用数据处理方法小结
2015/02/20 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
2015/04/17 Javascript
Javascript连接Access数据库完整实例
2015/08/03 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
jQuery实用技巧必备(下)
2015/11/03 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
2016/12/09 Javascript
JavaScript插入排序算法原理与实现方法示例
2018/08/06 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队LGD晋级之路
2018/04/07 DOTA
通过代码实例展示Python中列表生成式的用法
2015/03/31 Python
Python多线程下载文件的方法
2015/07/10 Python
详解Django缓存处理中Vary头部的使用
2015/07/24 Python
python中利用zfill方法自动给数字前面补0
2018/04/10 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
python实现简单多人聊天室
2018/12/11 Python
Python 70行代码实现简单算式计算器解析
2019/08/30 Python
如何在Django中使用聚合的实现示例
2020/03/23 Python
Python进程的通信Queue、Pipe实例分析
2020/03/30 Python
Python unittest框架操作实例解析
2020/04/13 Python
python实现简单猜单词游戏
2020/12/24 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
新秀丽拉杆箱美国官方网站:Samsonite美国
2016/07/25 全球购物
优秀大学生推荐信范文
2013/11/28 职场文书
财务会计自荐信范文
2014/02/21 职场文书
团拜会策划方案
2014/06/07 职场文书
计算机相关专业自荐信
2014/07/02 职场文书
项目负责人岗位职责
2015/02/15 职场文书
药店营业员岗位职责
2015/04/14 职场文书
新郎新娘致辞
2015/07/31 职场文书