Le Chaos Game est une méthode simple pour générer des fractales. Étant donné un point de départ, un rapport de longueur r et un ensemble de points 2D, procédez à plusieurs reprises comme suit:
- Dans votre ensemble de points, choisissez-en un au hasard (uniformément).
- Faites la moyenne de ce point et du dernier point tracé (ou du point de départ) en utilisant r et 1 - r comme poids (c.-à-d. R = 0 signifie que vous obtenez le point de départ, r = 1 signifie que vous obtenez le point aléatoire et r = 0,5 signifie que vous obtenir le point à mi-chemin entre les deux.)
- Dessinez le point résultant.
Par exemple, si vous avez choisi les sommets d'un triangle équilatéral et r = 0,5 , les points tracés traceraient un triangle de Sierpinski:
Vous devez écrire un programme ou une fonction qui "joue" le jeu du chaos pour créer une fractale.
Contribution
Vous pouvez écrire un programme ou une fonction et prendre les entrées suivantes via ARGV, STDIN ou l'argument de fonction:
- Le nombre de points à tracer.
- La coordonnée de départ (qui doit également être tracée!).
- Le poids moyen r dans l'intervalle [0,1] .
- Une liste de points à choisir.
Sortie
Vous pouvez effectuer un rendu à l'écran ou écrire un fichier image. Si le résultat est tramé, il doit être d'au moins 600 pixels de chaque côté, tous les points doivent être sur le canevas et au moins 75% de l'étendue horizontale et verticale de l'image doivent être utilisés pour les points (ceci afin d'éviter répond avec un seul pixel noir disant "c'est vraiment très loin"). Les axes x et y doivent être sur la même échelle (c'est-à-dire que la ligne de (0,0) à (1,1) doit être à un angle de 45 degrés) et chaque point tracé dans le jeu du chaos doit être représenté comme un seul pixel (si votre méthode de traçage anticrénelage le point, il peut être réparti sur 2x2 pixels).
Les couleurs sont votre choix, mais vous avez besoin d'au moins deux couleurs distinctes: une pour l'arrière-plan et une pour les points tracés pendant le jeu du chaos. Vous pouvez mais ne devez pas tracer les points d'entrée.
Veuillez inclure trois exemples de résultats intéressants dans votre réponse.
Notation
Il s'agit du code golf, donc la réponse la plus courte (en octets) l'emporte.
Modifier: vous n'avez plus besoin de tracer les points d'entrée, car ils ne sont de toute façon pas vraiment visibles en tant que pixels uniques.