Y Fractal tree en Python usando Turtle

Un fractal es un patrón interminable. Los fractales son patrones infinitamente complejos que son autosimilares en diferentes escalas. Se crean repitiendo un proceso simple una y otra vez en un ciclo de retroalimentación continuo. Impulsados ​​por la recursividad, los fractales son imágenes de sistemas dinámicos: las imágenes del Caos.

En este artículo, dibujaremos un colorido árbol fractal Y utilizando una técnica recursiva en Python.

Ejemplos:

Salida para nivel de profundidad: (a) 14 (b) 12

Módulos requeridos

Turtle: la biblioteca de turtle permite a los usuarios dibujar imágenes o formas usando comandos, brindándoles un lienzo virtual. Turtle viene con la biblioteca estándar de Python. Necesita una versión de Python con soporte Tk , ya que usa tkinter para los gráficos.

Funciones utilizadas:

  • fd(x) : dibuja el cursor hacia adelante x píxeles.
  • rt(x), lt(x) : gira la dirección de orientación del cursor x grados hacia la derecha y hacia la izquierda respectivamente.
  • colormode() : para cambiar el modo de color a rgb.
  • pencolor(r, g, b) : para establecer el color de la pluma de la Turtle.
  • speed() : para establecer la velocidad de la Turtle.

Enfoque :

  • Comenzamos dibujando una sola forma de ‘Y’ para el árbol base (nivel 1). Entonces ambas ramas de la ‘Y’ sirven como base de otras dos ‘Y’s (nivel 2).
  • Este proceso se repite recursivamente y el tamaño de la Y disminuye a medida que aumenta el nivel.
  • La coloración del árbol se realiza por niveles: más oscuro en el nivel base a más claro en el superior.

En la implementación a continuación, dibujaremos un árbol de tamaño 80 y nivel 7 .

from turtle import *
  
  
speed('fastest')
  
# turning the turtle to face upwards
rt(-90)
  
# the acute angle between
# the base and branch of the Y
angle = 30
  
# function to plot a Y
def y(sz, level):   
  
    if level > 0:
        colormode(255)
          
        # splitting the rgb range for green
        # into equal intervals for each level
        # setting the colour according
        # to the current level
        pencolor(0, 255//level, 0)
          
        # drawing the base
        fd(sz)
  
        rt(angle)
  
        # recursive call for
        # the right subtree
        y(0.8 * sz, level-1)
          
        pencolor(0, 255//level, 0)
          
        lt( 2 * angle )
  
        # recursive call for
        # the left subtree
        y(0.8 * sz, level-1)
          
        pencolor(0, 255//level, 0)
          
        rt(angle)
        fd(-sz)
           
          
# tree of size 80 and level 7
y(80, 7)

Producción :

Publicación traducida automáticamente

Artículo escrito por cosine1509 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *