Il gioco del caos è un metodo semplice per generare frattali. Dato un punto di partenza, un rapporto di lunghezza re una serie di punti 2D, eseguire ripetutamente le seguenti operazioni:
- Dal tuo set di punti, scegline uno a caso (uniformemente).
- Media quel punto e l'ultimo punto disegnato (o il punto iniziale) usando r e 1 - r come i pesi (cioè r = 0 significa che ottieni il punto iniziale, r = 1 significa che ottieni il punto casuale e r = 0,5 significa che ottenere il punto a metà strada.)
- Disegna il punto risultante.
Ad esempio, se si selezionassero i vertici di un triangolo equilatero e r = 0,5 , i punti tracciati mapperebbero un triangolo di Sierpinski:
Devi scrivere un programma o una funzione che "gioca" al gioco del caos per creare un frattale.
Ingresso
È possibile scrivere un programma o una funzione e accettare i seguenti input tramite ARGV, STDIN o argomento della funzione:
- Il numero di punti da tracciare.
- La coordinata iniziale (che deve anche essere tracciata!).
- Il peso medio r nell'intervallo [0,1] .
- Un elenco di punti tra cui scegliere.
Produzione
È possibile eseguire il rendering sullo schermo o scrivere un file di immagine. Se il risultato è rasterizzato, deve essere di almeno 600 pixel su ciascun lato, tutti i punti devono essere sulla tela e almeno i punti 75% dell'estensione orizzontale e verticale dell'immagine devono essere usati per i punti (questo per evitare risponde con un singolo pixel nero dicendo "è veramente molto ingrandito"). Il x ed y asse devono essere sulla stessa scala (cioè la linea da (0,0) a (1,1) deve essere ad un angolo di 45 gradi) e ciascun punto tracciato del gioco caos deve essere rappresentato come una singola pixel (se il tuo metodo di stampa anti-alias del punto, può essere distribuito su 2x2 pixel).
I colori sono la tua scelta, ma hai bisogno di almeno due colori distinguibili: uno per lo sfondo e uno per i punti tracciati durante il gioco del caos. Potrebbe non essere necessario tracciare i punti di input.
Includi tre interessanti esempi di output nella tua risposta.
punteggio
Questo è il golf del codice, quindi vince la risposta più breve (in byte).
Modifica: non è più necessario tracciare i punti di input, poiché non sono comunque realmente visibili come singoli pixel.