使用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使用wxPython打开并播放wav文件的方法
Apr 24 Python
Python下rrdtool模块的基本使用方法
Nov 13 Python
Python绘制七段数码管实例代码
Dec 20 Python
完美解决安装完tensorflow后pip无法使用的问题
Jun 11 Python
python 定义给定初值或长度的list方法
Jun 23 Python
python 实现调用子文件下的模块方法
Dec 07 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
Feb 21 Python
Python如何调用JS文件中的函数
Aug 16 Python
pytorch AvgPool2d函数使用详解
Jan 03 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
Feb 12 Python
python中字符串的编码与解码详析
Dec 03 Python
Python Pandas模块实现数据的统计分析的方法
Jun 24 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
PHP4实际应用经验篇(9)
2006/10/09 PHP
PHP操作Memcache实例介绍
2013/06/14 PHP
php 判断网页是否是utf8编码的方法
2014/06/06 PHP
Javascript与flash交互通信基础教程
2008/08/07 Javascript
jquery的ajax异步请求接收返回json数据实例
2014/06/16 Javascript
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
2016/01/27 Javascript
JavaScript DOM节点操作方法总结
2016/08/23 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
vue 挂载路由到头部导航的方法
2017/11/13 Javascript
JavaScript调用模式与this关键字绑定的关系
2018/04/21 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
javascript数组的定义及操作实例
2019/11/10 Javascript
python将图片文件转换成base64编码的方法
2015/03/14 Python
python中循环语句while用法实例
2015/05/16 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
python批量处理txt文件的实例代码
2020/01/13 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
css3和jquery实现自定义checkbox和radiobox组件
2014/04/22 HTML / CSS
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
HTML5制作3D爱心动画教程 献给女友浪漫的礼物
2014/11/05 HTML / CSS
欧舒丹英国官网:购买欧舒丹护手霜等明星产品
2017/01/17 全球购物
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
介绍一下木马病毒的种类
2015/07/26 面试题
应用艺术专业个人的自我评价
2014/01/03 职场文书
给分销商的致歉信
2014/01/14 职场文书
最新奶茶店创业计划书
2014/01/25 职场文书
基层党员对照检查材料
2014/08/25 职场文书
教师民族团结演讲稿
2014/08/27 职场文书
预备党员自我评价范文
2015/03/04 职场文书
Go语言切片前或中间插入项与内置copy()函数详解
2021/04/27 Golang
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL