Un peu de fractals

Bonjour à tous,

La librairie GD qu’offre PHP est pour moi un véritable exutoire des mes élucubrations géométriques.
Ainsi, il n’est pas rare que je crée des bouts de code pour illustrer des mathématiques.

Aujourd’hui, nous expérimenterons un principe fondamental dans la création de fractals: l’itération.
Evidemment, nous n’allons pas itérer à l’infini mais nous allons nous en donner l’illusion.
En effet, notre œil ne percevant pas tout et nos écrans étant limités à des pixels, nous n’aurons que quelques itérations de manœuvres.

Le principe d’aujourd’hui:
Prenons une figure plane, plus exactement, un polygone régulier à n côtés
Puis joignons les milieux des côtés de celui-ci.
Nous obtenons un nouveau polygone régulier à n côtés sensiblement plus petit que celui sur lequel il s’appuie.
Puis joignons les milieux des côtés de celui-ci…

Vous l’aurez rapidement compris, nous pouvons répéter ceci à l’infini.
cela donne quelque chose comme ceci:

Triangle équilatéral

Sans plus attendre, voici le code (avec commentaires :p)

  1. span class= »coMULTI »>/* Paramètres *//* Fonction personnelle
  2.  
  3.     Sert à récupérer les coordonnées (x,y) des somments d’un polygone régulier à $nb_cotes
  4.     centré en (0,0) et inscript dans un cercle de $rayon
  5.     (avec un décalage éventuel de $rotation degrés des points par rapport à la position initiale)*//* Code: créons notre fractal */‘../image.class.php’; //On inclus notre class Image
  6. //On instancie une nouvelle image de dimensions spécifiques
  7. //On alloue du noir
  8. //On alloue du blanc
  9. //On rectifie pour les cas impossibles
  10. //Principe de l’itération contrôlée
  11. //On translate nos points au centre de l’image (copie dans un autre tableau)
  12. //On affiche le polygone dont on a les coordonnées
  13.         $points[] = $points[0]; //On ajoute en fin de tableau les coordonnées (X,y) du premier point…
  14. //…et ce, pour pouvoir trouver les coordonnées des points milieux de tous les segments
  15. //On fixe nos points pour le tour suivant
  16. //On efface nos tableaux inutiles
  17. //On aime la transparence alors.. zou!
  18.     $image->afficher(); //On affiche notre image dans le navigateur (Merci la POO)

Et pour clore cet article comme à mon habitude, voici une petite interface pour vous essayer à d’autres polygones réguliers ou itérations que celui de mon exemple:

URL: http://verspecht.com/PHP/GD/FRACTALS/polygones_reguliers.php

Tags: , , , , , ,