使用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实现sublime3的less编译插件示例
Apr 27 Python
用Python编写一个基于终端的实现翻译的脚本
Apr 24 Python
MySQL中表的复制以及大型数据表的备份教程
Nov 25 Python
使用pyecharts无法import Bar的解决方案
Apr 23 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
Jan 06 Python
python邮件发送smtplib使用详解
Jun 16 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
Dec 26 Python
python Tkinter版学生管理系统
Feb 20 Python
python实现QQ空间自动点赞功能
Apr 09 Python
python 实现提取log文件中的关键句子,并进行统计分析
Dec 24 Python
通过 Python 和 OpenCV 实现目标数量监控
Jan 05 Python
Python selenium模拟网页点击爬虫交管12123违章数据
May 26 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&amp;MYSQL留言板源码
2020/07/19 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
PHP模拟http请求的方法详解
2016/11/09 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
2017/07/27 PHP
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
基于jQuery实现文本框缩放以及上下移动功能
2014/11/24 Javascript
JavaScript中的ArrayBuffer详细介绍
2014/12/08 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
去除html代码里面的script正则方法
2016/05/19 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
jQuery制作全屏宽度固定高度轮播图(实例讲解)
2017/07/08 jQuery
js事件委托和事件代理案例分享
2017/07/25 Javascript
JS实现将二维数组转为json格式字符串操作示例
2018/07/12 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
2018/09/01 Javascript
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
实现vuex与组件data之间的数据同步更新方式
2019/11/12 Javascript
json_decode 索引为数字时自动排序问题解决方法
2020/03/28 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
举例讲解Python设计模式编程中的访问者与观察者模式
2016/01/26 Python
Python实现批量检测HTTP服务的状态
2016/10/27 Python
Python自定义线程类简单示例
2018/03/23 Python
python 构造三维全零数组的方法
2018/11/12 Python
PHP笔试题
2012/02/22 面试题
大学生毕业的自我鉴定
2013/11/13 职场文书
酒店秘书求职信范文
2014/02/17 职场文书
最新结婚典礼主持词
2014/03/14 职场文书
高速铁道技术专业求职信
2014/08/09 职场文书
教师三严三实心得体会
2014/10/11 职场文书
2019森林防火宣传标语大全!
2019/07/03 职场文书
导游词之日月潭
2019/11/05 职场文书
Python anaconda安装库命令详解
2021/10/16 Python
一次Mysql update sql不当引起的生产故障记录
2022/04/01 MySQL