python递归函数绘制分形树的方法

yipeiwu_com6年前Python基础

分形几何学的基本思想:客观事物具有自相似性的层次结构,局部和整体在形态,功能,信息,时间,空间等方面具有统计意义上的相似性,称为自相似性,自相似性是指局部是整体成比例缩小的性质。

我们先看一下我们最终要绘制的图形:

案例分析:


代码:

## 绘制分型树,末梢的树枝的颜色不同

import turtle


def draw_brach(brach_length):


  if brach_length > 5:
    if brach_length < 40:
      turtle.color('green')

    else:
      turtle.color('red')

    # 绘制右侧的树枝
    turtle.forward(brach_length)
    print('向前',brach_length)
    turtle.right(25)
    print('右转20')
    draw_brach(brach_length-15)
    # 绘制左侧的树枝
    turtle.left(50)
    print('左转40')
    draw_brach(brach_length-15)

    if brach_length < 40:
      turtle.color('green')

    else:
      turtle.color('red')


    # 返回之前的树枝上
    turtle.right(25)
    print('右转20')
    turtle.backward(brach_length)
    print('返回',brach_length)

def main():
  turtle.left(90)
  turtle.penup()
  turtle.backward(150)
  turtle.pendown()
  turtle.color('red')

  draw_brach(100)

  turtle.exitonclick()

if __name__ == '__main__':
  main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

详解python如何在django中为用户模型添加自定义权限

django自带的认证系统能够很好的实现如登录、登出、创建用户、创建超级用户、修改密码等复杂操作,并且实现了用户组、组权限、用户权限等复杂结构,使用自带的认证系统就能帮助我们实现自定义的...

Python使用PyGreSQL操作PostgreSQL数据库教程

PostgreSQL是一款功能强大的开源关系型数据库,本文使用python实现了对开源数据库PostgreSQL的常用操作,其开发过程简介如下: 一、环境信息:   ...

python如何在列表、字典中筛选数据

python如何在列表、字典中筛选数据? 实际问题有哪些? 1.过滤掉列表[3,9,-1,10.-2......] 中负数 2.筛选出字典 {‘li_ming':90,'xiao_hon...

Flask框架实现的前端RSA加密与后端Python解密功能详解

Flask框架实现的前端RSA加密与后端Python解密功能详解

本文实例讲述了Flask框架实现的前端RSA加密与后端Python解密功能。分享给大家供大家参考,具体如下: 前言 在使用 Flask 开发用户登录API的时候,我之前都是明文传输 us...

Pytorch 实现权重初始化

在TensorFlow中,权重的初始化主要是在声明张量的时候进行的。 而PyTorch则提供了另一种方法:首先应该声明张量,然后修改张量的权重。通过调用torch.nn.init包中的多...