使用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 set集合类型操作总结
Nov 07 Python
Python打印斐波拉契数列实例
Jul 07 Python
Python编程中使用Pillow来处理图像的基础教程
Nov 20 Python
Python基于生成器迭代实现的八皇后问题示例
May 23 Python
Django 内置权限扩展案例详解
Mar 04 Python
python在openstreetmap地图上绘制路线图的实现
Jul 11 Python
pytorch 共享参数的示例
Aug 17 Python
python误差棒图errorbar()函数实例解析
Feb 11 Python
keras中的History对象用法
Jun 19 Python
Python之字典对象的几种创建方法
Sep 30 Python
selenium如何定位span元素的实现
Jan 13 Python
python开发制作好看的时钟效果
May 02 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设计模式 Template (模板模式)
2011/06/26 PHP
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
PHP判断远程图片或文件是否存在的实现代码
2014/02/20 PHP
PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
2016/04/11 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
关于jquery动态增减控件的一些想法和小插件
2010/08/01 Javascript
事件模型在各浏览器中存在差异
2010/10/20 Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
angular2使用简单介绍
2016/03/01 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
2017/06/26 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
JavaScript+CSS相册特效实例代码
2017/09/07 Javascript
vue axios请求拦截实例代码
2018/03/29 Javascript
mpvue构建小程序的方法(步骤+地址)
2018/05/22 Javascript
基于ts的动态接口数据配置的详解
2019/12/18 Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
[47:20]DAC2018 4.4 淘汰赛 Optic vs Mineski 第一场
2018/04/05 DOTA
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
在Python操作时间和日期之asctime()方法的使用
2015/05/22 Python
解决python报错MemoryError的问题
2018/06/26 Python
Python3.5 处理文本txt,删除不需要的行方法
2018/12/10 Python
Python控制Firefox方法总结
2019/06/03 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
基于Python实现船舶的MMSI的获取(推荐)
2019/10/21 Python
Python实现子类调用父类的初始化实例
2020/03/12 Python
python模拟实现分发扑克牌
2020/04/22 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
使用OpenCV去除面积较小的连通域
2020/07/05 Python
int和Integer有什么区别
2013/05/25 面试题
大学毕业晚会开场白
2015/05/29 职场文书
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL