使用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实现的扫雷游戏实例代码
Aug 01 Python
Python中的anydbm模版和shelve模版使用指南
Jul 09 Python
python数据结构链表之单向链表(实例讲解)
Jul 25 Python
python+pandas分析nginx日志的实例
Apr 28 Python
使用anaconda的pip安装第三方python包的操作步骤
Jun 11 Python
对python中数组的del,remove,pop区别详解
Nov 07 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
Dec 12 Python
Python检查ping终端的方法
Jan 26 Python
在pytorch中为Module和Tensor指定GPU的例子
Aug 19 Python
将pycharm配置为matlab或者spyder的用法说明
Jun 08 Python
Python pip install之SSL异常处理操作
Sep 03 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
Jan 27 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
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
php设置session值和cookies的学习示例
2014/03/21 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
使用Laravel中的查询构造器实现增删改查功能
2019/09/03 PHP
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
javascript Array数组对象的扩展函数代码
2010/05/22 Javascript
JS版元素周期表实现方法
2015/08/05 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
2019/08/12 Javascript
Vue中父子组件的值传递与方法传递
2020/09/28 Javascript
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
python基础教程之序列详解
2014/08/29 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
python opencv摄像头的简单应用
2019/06/06 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
Python自动创建Excel并获取内容
2020/09/16 Python
python爬取youtube视频的示例代码
2021/03/03 Python
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
人事助理自荐信
2014/02/02 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
行政办公室岗位职责
2014/03/18 职场文书
2014年综合治理工作总结
2014/11/20 职场文书
工厂清洁工岗位职责
2015/02/14 职场文书
Python中npy和mat文件的保存与读取
2022/04/24 Python