Pues, no es algo muy interesante, pero para mantener esta página activa les mostraré píxeles bonitos.
Todo esto inicia con un video de Matt Parker ("I found Amongi in the digits of pi!"), y yo, que soy mucho más fan del número de Euler, hice lo mismo. Obviamente, con mi propio método.
$$ 2 + (\sum^{\infty}_{i=2} \frac{1}{i!}) = e $$Una, probablemente burda, aproximación del algoritmo en notación matemática. El resultado de 1 sobre el producto del índice por x sub n se suma infinitamente; X inicia siendo 1, y se redefine en cada iteración como el resultado de la multiplicación. Finalmente, a eso se suma 2. (Algoritmo)
Con todo el algoritmo para encontrar el número de Euler, solo faltaba generar los píxeles. Esta parte fue la más simple, use una función wrap
, a la que le especificaba un ancho, y me retornaba grupos de elementos de un array en grupos.
Todo basado en la idea de después convertir los grupos a valores RGB que yo quisiera y dárselo a una función numpy.array
, que me dará un objeto específico que pueda ser convertido a una imagen.
Lamentablemente, aunque una idea muy buena y que da para mucho, no consumía tanto tiempo. Me moví a la siguiente idea: Degradados.
Acá introduciré un nuevo concepto, del cual no he leído en ninguna parte y sería tedioso no darle un nombre: "probabilidad de rangos". La probabilidad de rangos se va a referir a la generación de distribuciones arbitrarias de números pseudoaleatorios dentro de matrices bidimensionales.
Partamos por el inicio, ¿cómo generamos estas matrices bidimensionales? Las matrices bidimensionales serán generadas con un bucle for, este tiene un índice que nos dice en que iteración va, que será usado en una función que genera números pseudoaleatorios a la que se le da el más pequeño y más alto número que pueda generar; el índice multiplicará el máximo en cada iteración y entonces se generarán los patrones. Nos queda transformar estos números a valores RGB, y aquí entran los rangos.
Los rangos lo único que hacen es decidir como transformaremos estos números a un valor RGB. Por ejemplo: nos dicen que si un número está dentro del rango 1..5, entonces será verde. Simples condicionales.
Ahora que nos quitamos lo técnico del camino, los píxeles bonitos. Adiós.
¿Qué es una matriz bidimensional?
Piensa eso como un mueble con múltiples cajones, y cada cajón contiene cierta información. De manera más literal, el mueble es una matriz, con más matrices dentro que contienen información.