S’amuser avec les Fractales (Julia)

Quelque chose de vraiment simple que j’ai trouvé ici:

Une fractale est un motif sans fin. Les fractales sont des motifs infiniment complexes qui sont auto-similaires à différentes échelles. Ils sont créés en répétant un processus simple encore et encore dans une boucle de rétroaction continue. Entraînées par la récursivité, les fractales sont des images de systèmes dynamiques — les images du chaos. Géométriquement, ils existent entre nos dimensions familières. Les modèles fractaux sont extrêmement familiers, car la nature est pleine de fractales. Par exemple: arbres, rivières, côtes, montagnes, nuages, coquillages, ouragans, etc. Les fractales abstraites — telles que l’ensemble de Mandelbrot – peuvent être générées par un ordinateur calculant encore et encore une équation simple.

Ce que cela dit, c’est que les fractales peuvent être considérées comme un processus itératif et répétitif. Considérez les graines de tournesol dans l’image ci-dessous:

Source: https://www.greenmylife.in/shop/seeds/flowering-annuals-seeds/sunflower-seeds/large-bloom-sunflower/

Comme vous pouvez le voir, une séquence observable existe là-dedans. Le motif, qui suit la séquence de Fibonacci, est le comportement de fond mathématique suivi des graines de tournesol. Comme il est itératif et répété, on peut penser à une factorielle dont l’équation dépend fortement de la ration d’or (1,618…), qui est le rapport entre un nombre et le nombre précédent dans une séquence de Fibonacci.

Il y a beaucoup de processus naturels, qui suivent un processus très spécifique et répétitif, et il semble qu’un solide bagage mathématique gouverne leur comportement.

Fractales de Julia

« Julia » est une classe de fonctions mathématiques complexes, dont le comportement, bien que répétitif, est dit « chaotique ». Selon un article de Wikipédia:

Chaos: Lorsque le présent détermine le futur, mais que le présent approximatif ne détermine pas approximativement le futur.

Selon une explication très simple mais élégante ici:

Les fractales de l’ensemble de Julia sont normalement générées en initialisant un nombre complexe z = x + yi où i^2 = -1 et x et y sont des coordonnées de pixels d’image dans la plage d’environ -2 à 2. Ensuite, z est mis à jour à plusieurs reprises en utilisant: z = z ^ 2 + c où c est un autre nombre complexe qui donne un ensemble de Julia spécifique. Après de nombreuses itérations, si la magnitude de z est inférieure à 2, nous disons que le pixel est dans l’ensemble de Julia et le colorons en conséquence. L’exécution de ce calcul pour une grille entière de pixels donne une image fractale.

Oui. C’est à peu près à ce sujet, et maintenant nous allons voir comment nous pouvons réellement implémenter tout cela dans un script python très court.

Tout d’abord, nous avons besoin d’une bibliothèque pour gérer les images et d’une autre bibliothèque pour gérer le tracé.

Importer les éléments nécessaires

Ensuite, nous devons définir des constantes globales qui nous aideront dans le processus de génération fractale.

Ensuite, nous voyons la centrale de tout ce post, la fonction de base qui génère en fait une fractale et renvoie une image bitmap. Certaines entrées par défaut de la fonction sont définies, ce qui générera la fractale exacte, comme utilisée dans la photo de couverture de ce post, mais vous pouvez modifier avec différentes entrées pour générer vos propres fractales uniques. Le code est en quelque sorte une forme modifiée du noyau original écrit ici.

Maintenant, puisque vous avez une fonction définie, il vous suffit de l’appeler et de la tracer comme ceci:

Juste pour vous faciliter la vie, voici le code complet en un seul élément essentiel (au cas où vous n’auriez pas envie de copier des extraits individuels).

J’ai essayé avec plusieurs configurations, et voici quelques résultats intéressants:

Fractale de Julia : cX = 0,285, cY = 0,01, Couleur = (14, 13, 7)

Fractale de Julia : cX = 1 – goldenRatio, cY = 0, maxIter = 64, colorTup = (12, 17, 7)

Et enfin, essayons d’obtenir quelque chose de « gothique » en changeant nos entrées.

Fractale de Julia : cX = -0,7269, cY = 0.1888, maxIter = 255, Couleur = (0, 0, 1)

Comme vous pouvez le voir, avec un très petit changement (en moins de 1 unité) dans les entrées de notre fonction, nous pouvons générer une séquence totalement nouvelle. C’est le chaos. Le présent approximatif ne prédit pas un avenir approximatif. Pour le dire de manière simple,

C’est comme si j’avais un pinceau, je sélectionne quelques couleurs, mais je n’ai aucune idée de ce que le pinceau fera dès qu’il touchera la toile. Il peint juste le chaos.

Et ensuite? Nous pouvons générer des fractales 3D, qui semblent beaucoup plus froides que tout ce que vous pourriez avoir vu, si elles sont rendues avec des détails appropriés.

Voici un beau défi pour vous si vous voulez le faire passer à un tout autre niveau. Si vous pouvez générer des images comme celle-ci, je suis sûr que vous pourrez également générer des vidéos et que vous finirez peut-être par obtenir quelque chose d’aussi cool que cela:

Source: https://en.wikipedia.org/wiki/Julia_set#/media/File:JSr07885.gif

Ceci n’est qu’une introduction aux fractales de Julia. Il existe de nombreux autres types de fractales, qui peuvent être générées en modifiant l’équation sous-jacente, c’est-à-dire z = z2 + c. Je serai vraiment (comme, vraiment) heureux si vous découvrez des modèles plus récents et meilleurs en utilisant d’autres types de fractales, et je peux proposer une production artistique étonnante. Au cas où vous le feriez, faites-le moi savoir. Ne signez pas non plus maintenant!

You might also like

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.