Divertimento con frattali (Julia)

Qualcosa di veramente semplice che ho trovato qui:

Un frattale è un modello senza fine. I frattali sono modelli infinitamente complessi che sono auto-simili su scale diverse. Vengono creati ripetendo un semplice processo più e più volte in un ciclo di feedback in corso. Guidati dalla ricorsione, i frattali sono immagini di sistemi dinamici-le immagini del Caos. Geometricamente, esistono tra le nostre dimensioni familiari. I modelli frattali sono estremamente familiari, poiché la natura è piena di frattali. Per esempio: alberi, fiumi, coste, montagne, nuvole,conchiglie, uragani, ecc. I frattali astratti, come il set di Mandelbrot, possono essere generati da un computer che calcola una semplice equazione più e più volte.

Ciò che dice è che i frattali possono essere pensati come un processo iterativo e ripetitivo. Considera i semi di girasole nell’immagine qui sotto:

Fonte: https://www.greenmylife.in/shop/seeds/flowering-annuals-seeds/sunflower-seeds/large-bloom-sunflower/

Come puoi vedere, esiste una sequenza osservabile lì dentro. Il modello, che segue la sequenza di Fibonacci è il comportamento di sfondo matematico che è seguito dai semi di girasole. Poiché è iterativo e ripetuto, si può pensare a un fattoriale la cui equazione dipende fortemente dalla razione aurea (1.618…), che è il rapporto tra un numero e il numero precedente in una sequenza di Fibonacci.

Ci sono molti processi naturali, che seguono un processo molto specifico e ripetitivo, e sembra che un forte background matematico stia governando il loro comportamento.

Frattali di Julia

“Julia” è una classe di funzioni matematiche complesse, il cui comportamento, sebbene ripetitivo, è detto “Caotico”. Secondo un articolo di Wikipedia:

Caos: quando il presente determina il futuro, ma il presente approssimativo non determina approssimativamente il futuro.

Secondo una spiegazione molto semplice, ma elegante qui:

I frattali di Julia set sono normalmente generati inizializzando un numero complesso z = x + yi dove i^2 = -1 e x e y sono coordinate pixel dell’immagine nell’intervallo da -2 a 2. Quindi, z viene ripetutamente aggiornato usando: z = z^2 + c dove c è un altro numero complesso che fornisce uno specifico set di Julia. Dopo numerose iterazioni, se la grandezza di z è inferiore a 2 diciamo che il pixel è nel set Julia e lo coloriamo di conseguenza. L’esecuzione di questo calcolo per un’intera griglia di pixel fornisce un’immagine frattale.

Sì. Questo è più o meno su di esso, e ora vedremo come possiamo effettivamente implementare tutto questo in uno script python molto breve.

Per prima cosa, abbiamo bisogno di una libreria per gestire le immagini e un’altra libreria per gestire il plotting.

Importazione delle cose necessarie

Successivamente, dobbiamo definire alcune costanti globali che ci aiuteranno nel processo di generazione frattale.

Successivamente, vediamo la centrale elettrica di questo intero post, la funzione principale che genera effettivamente un frattale e restituisce un’immagine bitmap. Alcuni ingressi predefiniti per la funzione sono impostati, che genererà il frattale esatto, come usato nella foto di copertina di questo post, ma è possibile modificare in giro con diversi ingressi per generare il vostro molto proprio frattali unici. Il codice è in qualche modo una forma modificata del nucleo originale scritto qui.

Ora, dal momento che hai una funzione definita, devi solo chiamarla e tracciarla in questo modo:

Solo per rendere la vita più facile per te, ecco il codice completo in un unico succo (nel caso in cui non hai voglia di copiare singoli frammenti).

Ho provato con diverse configurazioni, ed ecco alcuni risultati interessanti:

Julia Frattale: cX = 0.285, cY = 0.01, colorTup = (14, 13, 7)

Julia Frattale: cX = 1-goldenRatio, cY = 0, maxIter = 64, colorTup = (12, 17, 7)

E, infine, cerchiamo di ottenere qualcosa di “Gotico”, cambiando i nostri ingressi.

Julia Frattale: cX = -0.7269, cY = 0.1888, maxIter = 255, colorTup = (0, 0, 1)

Come puoi vedere, con un cambiamento molto piccolo (entro meno di 1 unità) negli ingressi della nostra funzione, possiamo generare una sequenza totalmente nuova. E ‘ il caos. Il presente approssimativo non prevede un futuro approssimativo. Per dirla in modo semplice,

È come se avessi un pennello, seleziono alcuni colori, ma non ho idea di cosa farà il pennello non appena toccherà la tela. Dipinge solo il caos.

Quale sarà il prossimo? Possiamo generare frattali 3D, che sembrano molto più freschi di qualsiasi cosa tu abbia visto, se resi con dettagli appropriati.

Ecco una bella sfida per voi, se si vuole prendere ad un livello completamente nuovo. Se è possibile generare immagini come questa, sono sicuro che ti piacerebbe essere in grado di generare video, e potrebbe finire con qualcosa di fresco come questo:

Fonte: https://en.wikipedia.org/wiki/Julia_set#/media/File:JSr07885.gif

Questa è solo un’introduzione ai frattali di Julia. Ci sono molti altri tipi di frattali, che possono essere generati modificando l’equazione sottostante, vale a dire z = z2+c. Sarò davvero (come, reallyyy) contento se in realtà capisci modelli più nuovi e migliori usando altri tipi di frattali, e posso trovare una straordinaria produzione artistica. Nel caso lo facessi, fammelo sapere. Firma fuori né ora!

You might also like

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.