turtle画分形树
今天用了python内置的turtle绘图库,感觉很有意思。然后尝试用turtle+递归画了一个分型树。代码如下,
import turtletoplevel = 6 #一共递归6层
angle = 30
rangle = 15
def drawTree(length, level):turtle.left(angle) #绘制左枝turtle.forward(length)if level == toplevel: #叶子turtle.circle(2,360)if level < toplevel: #在左枝退回去之前递归drawTree(length-10, level+1)turtle.back(length)turtle.right(angle+rangle) #绘制右枝turtle.forward(length)if level == toplevel: #叶子turtle.circle(2,360)if level < toplevel: #在右枝退回去之前递归drawTree(length-10, level+1)turtle.back(length)turtle.left(rangle)turtle.left(90)
turtle.penup()
turtle.back(300)
turtle.pendown()
turtle.forward(100)
turtle.speed('fastest')
drawTree(80,1)turtle.done()
图形是这样,
这个稍微美化了一些,来看个最原始的版本:
import turtletoplevel = 6 #一共递归6层
angle = 30
def drawTree(length, level):turtle.left(angle) #绘制左枝turtle.forward(length)if level < toplevel: #在左枝退回去之前递归drawTree(length-10, level+1)turtle.back(length)turtle.right(angle*2) #绘制右枝turtle.forward(length)if level < toplevel: #在右枝退回去之前递归drawTree(length-10, level+1)turtle.back(length)turtle.left(angle)turtle.tracer(0) #不刷新
turtle.left(90)
drawTree(80,1)
turtle.update() #刷新,和上面的tracer(0)配合,直接出图形,忽略过程turtle.done()
其中,这里去掉了树干,去掉了树叶,去掉了让树向左歪。图形如下
最后,我们可以继续美化这颗分型树,下面说几点想到的:
- 树干的粗细可以不同,最好从下往上依次变细。
- 树叶可以画的漂亮些,不仅仅是个圆。
- 背景颜色可以改变。
- 树干,树叶颜色可以改变。
- 可以加入一些随机的树叶。
- 可以给左右角度一个合理的随机范围,这样就不止可以让树歪,而是变得有层次感。
暂时想到这么多,挺晚了,该睡了,下次有机会再实现。
turtle画分形树相关推荐
- Python Turtle画分形树理解递归
递归思想 递归可以把一个复杂问题转化为一个与原问题相似的规模较小的问题,通过自己调用自己,找到最终解决这个问题的条件,达到判断条件时返回. 通过分形树理解递归 Python中的 turtle画图很方便 ...
- 用python的turtle画分形树
由于分形树具有对称性,自相似性,所以我们可以用递归来完成绘制.只要确定开始树枝长.每层树枝的减短长度和树枝分叉的角度,我们就可以把分形树画出来啦!! 代码如下: # -*- coding: utf-8 ...
- python画树叶-使用Python turtle画分形树叶图
关于使用Python的turtle画树叶的代码. 感兴趣的可以自己了解一下分形树叶的数学几何原理--含概率的迭代函数系统.代码不难,关键是数学原理哦~还有,绘制过程有助于对代码和数学原理理解,大家动手 ...
- 用python画四瓣树叶_使用Python turtle画分形树叶图
关于使用Python的turtle画树叶的代码. 感兴趣的可以自己了解一下分形树叶的数学几何原理--含概率的迭代函数系统.代码不难,关键是数学原理哦~还有,绘制过程有助于对代码和数学原理理解,大家动手 ...
- python turtle画简单树_大家用Python-turtle库作图画出过哪些漂亮的树哇 ?
改进了大神的代码,turtle很好玩. from turtle import * from random import * from math import * from cmath import p ...
- 用python画分形树的详细解析_基于Python的matplotlib库绘制分形树
import math import copy import numpy as np import matplotlib.pyplot as plt # 距离计算公式 def get_len(x1,x ...
- Python画一棵茂盛的分形树
文章目录 前情回顾 添加分岔 茂盛的分形树 前情回顾 上次画了一棵分形树:用Python画一棵分形树,得到的图如下 发现看的人还是挺多的,但没什么人点赞,这说明我能给大家画分形树,大家很高兴,但这棵树 ...
- Python数据结构15:turtle模块制图,画直线,正方形,星星,递归可视化:分形树,谢尔宾斯基三角形
1. Python中的turtle模块制图 前面已经讲了递归的原理,这里用递归作图来直观的理解递归. 首先了解以下Python中用于作图的内置海龟作图系统turtle module. Python内置 ...
- python用turtle画月亮_使用Python turtle画表白分形树
原标题:使用Python turtle画表白分形树 turtle --- 海龟绘图 海龟绘图很适合用来引导孩子学习编程.最初来自于 Wally Feurzig 和 Seymour Papert 于 1 ...
- python画五角星为什么144度_使用turtle绘制五角星、分形树
本文实例为大家分享了使用turtle绘制五角星和分形树的具体代码,供大家参考,具体内容如下 turtle 库 与之前程序的区别: 没有显示的input()与output() 没有赋值语句 大部分语句为 ...
最新文章
- 生成sql 脚本没有索引
- mysql抓包_mysql抓包工具
- 【LeetCode笔记】17.电话号码的字母组合(Java、DFS)
- FirefoxOS 1.2 on ZTE Open
- 昆虫繁殖(信息学奥赛一本通-T1312)
- 计算机c语言笔试试题,计算机二级c语言笔试题和面试题答案(2019最新)
- L1-015. 跟奥巴马一起画方块-PAT团体程序设计天梯赛GPLT
- Office 365 Sway-移动设备推送利器
- 面试题:return和finally执行
- 译:Self-Modifying cod 和cacheflush
- python判断闰年_python判断闰年
- HTTP 405 Method Not Allowed问题的解决
- Netty和Tomcat有什么区别
- Windows共享Linux打印机,Ubuntu使用教程-使用Windows共享打印机进行打印
- [VB.NET]如何设置随机数的种子
- JS——数组中去除空空字符串
- ChatGPT的前世今生
- 485通讯的校验和_组态王与西门子S71200PLC无线Modbus通讯
- Direct3D9 教程01
- IEEE Transactions on Image Processing文献跟踪11月