使用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+Splinter自动刷新抢12306火车票
Jan 03 Python
python re库的正则表达式入门学习教程
Mar 08 Python
python之当你发现QTimer不能用时的解决方法
Jun 21 Python
Python shutil模块用法实例分析
Oct 02 Python
python中从for循环延申到推导式的具体使用
Nov 29 Python
Django单元测试中Fixtures用法详解
Feb 25 Python
python使用pandas抽样训练数据中某个类别实例
Feb 28 Python
Python如何使用正则表达式爬取京东商品信息
Jun 01 Python
python爬虫快速响应服务器的做法
Nov 24 Python
细说NumPy数组的四种乘法的使用
Dec 18 Python
Python用SSH连接到网络设备
Feb 18 Python
使用Python的开发框架Brownie部署以太坊智能合约
May 28 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
BBS(php &amp; mysql)完整版(一)
2006/10/09 PHP
如何在PHP程序中防止盗链
2008/04/09 PHP
php获取地址栏信息的代码
2008/10/08 PHP
php单例模式实现(对象只被创建一次)
2012/12/05 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
完美实现wordpress禁止文章修订和自动保存的方法
2014/11/03 PHP
php基于GD库画五星红旗的方法
2015/02/24 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
PHP微信H5支付开发实例
2018/07/25 PHP
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
2012/01/13 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
Javascript原型链的原理详解
2016/01/05 Javascript
浅析jquery与checkbox的checked属性的问题
2016/04/27 Javascript
javascript中的 object 和 function小结
2016/08/14 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
详解vue 数据传递的方法
2018/04/19 Javascript
浅谈super-vuex使用体验
2018/06/25 Javascript
jQuery实现的页面弹幕效果【测试可用】
2018/08/17 jQuery
Javascript的this详解
2019/03/23 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
小程序采集录音并上传到后台
2019/11/22 Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
Django实现文件上传下载
2019/10/06 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
Python gevent协程切换实现详解
2020/09/14 Python
Python爬取网站图片并保存的实现示例
2021/02/26 Python
HTML页面中添加Canvas标签示例
2015/01/01 HTML / CSS
献爱心活动总结
2014/05/07 职场文书
小学感恩教育活动总结
2014/07/07 职场文书
11.9消防日宣传标语
2014/10/08 职场文书
2014年骨干教师工作总结
2014/12/19 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis