El Juego del Caos es un método simple para generar fractales. Dado un punto de partida, una relación de longitud r y un conjunto de puntos 2D, haga lo siguiente repetidamente:
- De su conjunto de puntos, elija uno al azar (uniformemente).
- Promedie ese punto y el último punto dibujado (o el punto de partida) usando r y 1 - r como los pesos (es decir, r = 0 significa que obtiene el punto de partida, r = 1 significa que obtiene el punto aleatorio y r = 0.5 significa que obtener el punto a medio camino.)
- Dibuja el punto resultante.
Por ejemplo, si seleccionó los vértices de un triángulo equilátero yr = 0.5 , los puntos trazados trazarían un triángulo de Sierpinski:
Imagen encontrada en Wikipedia
Debes escribir un programa o función que "juegue" el juego del caos para crear un fractal.
Entrada
Puede escribir un programa o una función, y tomar las siguientes entradas a través de ARGV, STDIN o argumento de función:
- El número de puntos para trazar.
- La coordenada de inicio (¡que también debe trazarse!).
- El peso promedio r en el intervalo [0,1] .
- Una lista de puntos para elegir.
Salida
Puede renderizar en pantalla o escribir un archivo de imagen. Si el resultado está rasterizado, debe tener al menos 600 píxeles en cada lado, todos los puntos deben estar en el lienzo y al menos el 75% de la extensión horizontal y vertical de la imagen debe usarse para los puntos (esto es para evitar responde con un solo píxel negro que dice "está muy alejado"). La x e y eje debe estar en la misma escala (es decir la línea a partir de (0,0) a (1,1) deben estar en un ángulo de 45 grados) y cada punto representado en el juego del caos debe ser representado como una sola píxel (si su método de trazado suaviza el punto, puede extenderse en 2x2 píxeles).
Los colores son su elección, pero necesita al menos dos colores distinguibles: uno para el fondo y otro para los puntos trazados durante el juego del caos. Puede pero no tiene que trazar los puntos de entrada.
Incluya tres resultados de ejemplo interesantes en su respuesta.
Tanteo
Este es el código de golf, por lo que gana la respuesta más corta (en bytes).
Editar: ya no necesita trazar los puntos de entrada, ya que de todos modos no son realmente visibles como píxeles individuales.