使用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统计文件行数示例分享
Feb 21 Python
python多线程threading.Lock锁用法实例
Nov 01 Python
Python进程间通信用法实例
Jun 04 Python
Python中if __name__ == '__main__'作用解析
Jun 29 Python
详解Python中的变量及其命名和打印
Mar 11 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
Mar 16 Python
python paramiko利用sftp上传目录到远程的实例
Jan 03 Python
Python 利用pydub库操作音频文件的方法
Jan 09 Python
numpy下的flatten()函数用法详解
May 27 Python
浅谈python多进程共享变量Value的使用tips
Jul 16 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 Python
python调用摄像头的示例代码
Sep 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
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
php插入排序法实现数组排序实例
2015/02/16 PHP
php实现短信发送代码
2015/07/05 PHP
CodeIgniter钩子用法实例详解
2016/01/20 PHP
Aster vs Newbee BO3 第三场2.18
2021/03/10 DOTA
JavaScript 反科里化 this [译]
2012/09/20 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
2013/11/25 Javascript
JS版的date函数(和PHP的date函数一样)
2014/05/12 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
JS实现闪动的title消息提醒效果
2014/06/20 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
2014/09/02 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
2017/04/13 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
JS获取浏览器地址栏的多个参数值的任意值实例代码
2018/07/24 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
node命令行工具之实现项目工程自动初始化的标准流程
2019/08/12 Javascript
js实现盒子拖拽动画效果
2020/08/09 Javascript
python flask中静态文件的管理方法
2018/03/20 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
对pandas写入读取h5文件的方法详解
2018/12/28 Python
python的faker库用法
2019/11/28 Python
django ListView的使用 ListView中获取url中的参数值方式
2020/03/27 Python
python实现简单学生信息管理系统
2020/04/09 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
母亲80寿诞答谢词
2014/01/16 职场文书
群教班子对照检查材料
2014/08/26 职场文书
学生逃课检讨书
2015/02/17 职场文书
2015年销售部工作总结范文
2015/04/27 职场文书
十七岁的单车观后感
2015/06/12 职场文书
教师廉政准则心得体会
2016/01/20 职场文书
Promise面试题详解之控制并发
2021/05/14 面试题