python使用turtle绘制分形树
作者:yunyunyx 发布时间:2022-10-21 12:10:23
标签:python,turtle,分形树
由于分形树具有对称性,自相似性,所以我们可以用递归来完成绘制。只要确定开始树枝长、每层树枝的减短长度和树枝分叉的角度,我们就可以把分形树画出来啦!!
代码如下:
# -*- coding: utf-8 -*-
'''
绘制分形树
'''
import turtle as tl
def draw_smalltree(tree_length,tree_angle):
'''
绘制分形树函数
'''
if tree_length >= 3:
tl.forward(tree_length) #往前画
tl.right(tree_angle) #往右转
draw_smalltree(tree_length - 10,tree_angle)#画下一枝,直到画到树枝长小于3
tl.left(2 * tree_angle) #转向画左
draw_smalltree(tree_length -10,tree_angle) #直到画到树枝长小于3
tl.rt(tree_angle) #转到正向上的方向,然后回溯到上一层
if tree_length <= 30: #树枝长小于30,可以当作树叶了,树叶部分为绿色
tl.pencolor('green')
if tree_length > 30:
tl.pencolor('brown') #树干部分为棕色
tl.backward(tree_length) #往回画,回溯到上一层
def main():
tl.penup()
#tl.pencolor('green')
tl.left(90) #因为树是往上的,所以先把方向转左
tl.backward(250) #把起点放到底部
tl.pendown()
tree_length = 100 #我设置的最长树干为100
tree_angle = 20 #树枝分叉角度,我设为20
draw_smalltree(tree_length,tree_angle)
tl.exitonclick() #点击才关闭画画窗口
if __name__ == '__main__':
main()
结果如下:
来源:https://blog.csdn.net/yunyunyx/article/details/79960692


猜你喜欢
- 前置条件确保mysql的版本是5.7+一、新建mysql表增加json字段二、pojo类package com.cxstar.domain;
- 本文实例讲述了Python图像处理之图像的缩放、旋转与翻转实现方法。分享给大家供大家参考,具体如下:图像的几何变换,如缩放、旋转和翻转等,在
- http协议是无状态的。下一次去访问一个页面时并不知道上一次对这个页面做了什么。无状态的应用层面的原因是:浏览器和服务器之间的通信都遵守HT
- 本文实例讲述了python的json中方法及jsonpath模块用法。分享给大家供大家参考,具体如下:什么是jsonJSON(JavaScr
- 目标在本章中,将学习"Harris Corner Detection”背后的思想函数:cv2.cornerHa
- Django 是由 Python 开发的一个免费的开源网站框架,可以用于快速搭建高性能,优雅的网站!学习django学得超级吃力
- 在Web开发者中,Google Chrome是使用最广泛的浏览器。六周一次的发布周期和一套强大的不断扩大开发功能,使其成为了web开发者必备
- 传统的HTML页面中连动下拉框采用了两种方法:1)直接将下拉框中的内容hardcode于html的javascript中,调用javascr
- python字符串,元组,列表,字典互相转换直接给大家上代码实例#-*-coding:utf-8-*- #1、字典dict = {'
- ASCII码转换为int:ord('A') 65int转为ASCII码:chr(65) 'A'题目内容:实现
- 引言在Go语言中,我们通常会用到panic和recover来抛出错误和捕获错误,这一对操作在单协程环境下我们正常用就好了,并不会踩到什么坑。
- PHP 文件上传通过 PHP,可以把文件上传到服务器。本章节实例在 test 项目下完成,目录结构为:test|-----upload&nb
- 1.函数添加import sys sys.pathsys.path.append("c:\\")2.修改pythonpa
- 一、安装pip install pymysql二、连接数据库三种连接数据库的方式import pymysql# 方式一conn = pymy
- 前言接口在软件工程扮演重要角色,随着应用程序的功能不断扩展,代码库的更新和改变也难以管理。在许多情况下,会发现有一些看起来非常相似,但却不相
- 在迁移学习finetune时我们通常需要冻结前几层的参数不参与训练,在Pytorch中的实现如下:class Model(nn.Module
- *args与**kwarsg及闭包和装饰器过程先理解闭包,再理解装饰器,不要忘了不定长参数def func():
- 正在看的ORACLE教程是:ORACLE8的分区管理。摘要:本篇文章介绍了ORACLE数据库的新特性—分区管理,并用例子说明使用方法。 关键
- 寒假里学习了一下Python爬虫,使用最简单的方法扒取需要的天气数据,对,没听错,最简单的方法。甚至没有一个函数封装。。网址:http://
- ueditor是百度编辑器,在本地的iis环境是可以上传图片了,但放在服务器的iis环境无法上传图片了,经过搜索发现是iis设置问题,引起这