Das Chaos-Spiel ist eine einfache Methode, um Fraktale zu generieren. Führen Sie unter der Annahme eines Startpunkts, eines Längenverhältnisses r und einer Menge von 2D-Punkten wiederholt Folgendes aus:
- Wählen Sie aus Ihrem Punktesatz einen Punkt nach dem Zufallsprinzip (einheitlich) aus.
- Dieser Punkt und der zuletzt gezogene Punkt (oder der Startpunkt) werden gemittelt, wobei r und 1 - r als Gewicht verwendet werden (dh r = 0 bedeutet, dass Sie den Startpunkt erhalten, r = 1 bedeutet, dass Sie den Zufallspunkt erhalten, und r = 0,5 bedeutet, dass Sie den Punkt auf halbem Weg dazwischen bekommen.)
- Zeichnen Sie den resultierenden Punkt.
Wenn Sie beispielsweise die Eckpunkte eines gleichseitigen Dreiecks und r = 0,5 auswählen, werden die eingezeichneten Punkte ein Sierpinski-Dreieck darstellen:
Sie müssen ein Programm oder eine Funktion schreiben, die das Chaos-Spiel "spielt", um ein Fraktal zu erstellen.
Eingang
Sie können entweder ein Programm oder eine Funktion schreiben und folgende Eingaben über ARGV, STDIN oder Funktionsargument vornehmen:
- Die Anzahl der zu zeichnenden Punkte.
- Die Startkoordinate (die auch eingetragen werden muss!).
- Das Durchschnittsgewicht r im Intervall [0,1] .
- Eine Liste mit Punkten zur Auswahl.
Ausgabe
Sie können auf dem Bildschirm rendern oder eine Bilddatei schreiben. Wenn das Ergebnis gerastert wird, muss es auf jeder Seite mindestens 600 Pixel betragen, alle Punkte müssen sich auf der Leinwand befinden und mindestens 75% der horizontalen und vertikalen Ausdehnung des Bildes müssen für Punkte verwendet werden (dies ist zu vermeiden) Antworten mit einem einzelnen schwarzen Pixel, das sagt "es ist wirklich weit herausgezoomt"). Die x- und y- Achse müssen auf derselben Skala liegen (dh die Linie von (0,0) bis (1,1) muss einen Winkel von 45 Grad haben), und jeder im Chaosspiel geplottete Punkt muss als einzelner Punkt dargestellt werden Pixel (wenn Ihre Plotmethode den Punkt als Anti-Aliase darstellt, kann er über 2x2 Pixel verteilt sein).
Sie haben die Wahl zwischen Farben, aber Sie benötigen mindestens zwei unterscheidbare Farben: eine für den Hintergrund und eine für die Punkte, die während des Chaos-Spiels gezeichnet werden. Möglicherweise müssen Sie die Eingabepunkte zeichnen, aber nicht.
Bitte fügen Sie Ihrer Antwort drei interessante Beispielausgaben bei.
Wertung
Dies ist Codegolf, daher gewinnt die kürzeste Antwort (in Bytes).
Bearbeiten: Sie müssen die Eingabepunkte nicht mehr zeichnen, da sie ohnehin nicht wirklich als einzelne Pixel sichtbar sind.