Árvore Y Fractal em Python usando Turtle
Um fractal é um padrão sem fim. Fractais são padrões infinitamente complexos que são semelhantes em diferentes escalas. Eles são criados pela repetição de um processo simples continuamente em um ciclo de feedback contínuo. Impulsionados pela recursão, os fractais são imagens de sistemas dinâmicos - as imagens do Caos.
Neste artigo, desenharemos uma árvore fractal Y colorida usando uma técnica recursiva em Python.
Exemplos:
Módulos necessários
turtle: a biblioteca turtle permite que os usuários desenhem imagens ou formas usando comandos, fornecendo a eles uma tela virtual. turtle vem com a biblioteca padrão do Python. Ele precisa de uma versão do Python com suporte Tk , pois usa tkinter para os gráficos.
Funções usadas:
- fd (x) : desenha o cursor para frente em x pixels.
- rt (x), lt (x) : gira a direção oposta do cursor em x graus para a direita e esquerda, respectivamente.
- colormode() : para alterar o modo de cor para rgb.
- pencolor (r, g, b) : para definir a cor do curral da tartaruga.
- velocidade() : para definir a velocidade da tartaruga.
Abordagem :
- Começamos desenhando uma única forma de 'Y' para a árvore base (nível 1). Então, os dois ramos do 'Y' servem como base para os outros dois 'Ys (nível 2).
- Este processo é repetido recursivamente e o tamanho do Y diminui à medida que o nível aumenta.
- A coloração da árvore é feita em nível sábio: da mais escura no nível de base até a mais clara na de cima.
Na implementação abaixo, desenharemos uma árvore de tamanho 80 e nível 7 .
from
turtle
import
*
speed(
'fastest'
)
rt(
-
90
)
angle
=
30
def
y(sz, level):
if
level >
0
:
colormode(
255
)
pencolor(
0
,
255
/
/
level,
0
)
fd(sz)
rt(angle)
y(
0.8
*
sz, level
-
1
)
pencolor(
0
,
255
/
/
level,
0
)
lt(
2
*
angle )
y(
0.8
*
sz, level
-
1
)
pencolor(
0
,
255
/
/
level,
0
)
rt(angle)
fd(
-
sz)
y(
80
,
7
)
Resultado :
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva