Arbres fractals en Python

| | | | | |

Introduction Un arbre fractal est connu comme un arbre qui peut être créé par ramification symétrique récursive.

Un tronc de longueur 1 se divise en deux branches de longueur r, chacune de qui forme un angle q avec la direction du canon. Ces deux branches sont divisées en deux branches de longueur r * r, chacune faisant un angle q avec la direction de sa branche mère. En continuant ainsi un nombre infini de branches, un arbre est un ensemble de branches avec leurs points limites, appelés pointes de branches.

Assez de théorie, essayons maintenant l`implémentation en Python. Pour cela, nous avons besoin de deux bibliothèques Python Pygame pour l`interface graphique ou l`interface graphique et maths, qui est une bibliothèque intégrée à Python et sera utilisée pour les ajustements mathématiques.

Pour installer Pygame

pip install pygame 

Alors, comment procéder, il est fortement recommandé que vous connaissiez un peu les pygmées et les fractales.

Créez d`abord le tronc, puis commencez à créer des branches pour chaque tronc, en supposant que la taille de la branche est de 0,9 * (longueur de la tige), puis en traitant à nouveau les branches comme une tige, en répétant le processus.

# Importation de bibliothèques python

import pygame, math


# Initialise cue tous les modules Pygame importés
pygame. init ()


# Crée une nouvelle surface et fenêtre.

surface_height, surface_width = 800 , 600 # Variables de surface

main_surface = pygame.display.set_mode ((surface_height, surface_width))


# Titre de la fenêtre

pygame.display.set_caption ( "Fractal_Tree_pythonengineering" )


def draw_tree (ordre, thêta, sz, pos n, titre, couleur = ( 0 , 0 , 0 ), profondeur = 0 ) :


Le relatif rapport du tronc à l`arbre entier

trunk_ratio = 0,29


# Longueur du canon

tronc = sz * trunk_rati ou

delta_x = tronc * math.cos (titre)

delta_y = tronc * math.sin (titre)

(u, v) = posn

newpos = (u + delta_x, v + delta_y)

pygame.draw.line (main_surface, color , posn, newpos)


si ordre > 0  : # Dessine une autre couche de sous-arbres


# Six lignes suivantes - hack simple

# les deux moitiés principales de la récursivité sont différentes

# couleurs. Jouez ici pour changer les couleurs en une autre

# profondeurs, ou lorsque la profondeur est paire ou impaire , etc.

si profondeur = = 0  :

color1 = ( 255 , 0 , 0 )

color2 = ( 0 , 0 , 255 )

sinon  :

couleur1 = couleur

couleur2 = couleur


# faire des appels récursifs pour dessiner deux sous-arbres

newsz = sz * ( 1 1 = "keyword"> - trunk_ratio)

draw_tree (ordre - 1 , theta, newsz, newpos, titre - thêta, couleur1, profondeur + 1 )

draw_tree (ordre - 1 , theta, newsz, newpos, titre + thêta, couleur2, profondeur + 1 )



def main() :

theta = 0

tandis que Vrai  :


# Update corner

theta + = 0.01

# Cette petite partie nous permet de dessiner des choses

# tout à l`écran

main_surface.fill (( 255 , 255 , 0 ))

draw_tree ( 9 , theta, surface_height * 0.9 , (surface_width / / 2 , largeur_surface - 50 ), - math.pi / 2 )

pygame.display.flip ()


# Appel de la fonction main
main()
pygame.quit()

Quitter :

< ! - [si lt IE 9]>% MINIF YHTMLc707a572199fb7b4b8a82374bf37b87213%      

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method