Zabawa z fraktalami (Julia)

coś naprawdę prostego znalazłem tutaj:

fraktal to niekończący się wzór. Fraktale są nieskończenie złożonymi wzorami, które są samopodobne w różnych skalach. Są one tworzone przez powtarzanie prostego procesu w kółko w bieżącej pętli sprzężenia zwrotnego. Napędzane rekursją fraktale są obrazami systemów dynamicznych-obrazami chaosu. Geometrycznie istnieją pomiędzy naszymi znajomymi wymiarami. Wzory fraktalne są niezwykle znane, ponieważ natura jest pełna fraktali. Na przykład: drzewa, rzeki, wybrzeża, góry, chmury, muszle, huragany itp. Abstrakcyjne fraktale – takie jak zbiór Mandelbrota-mogą być generowane przez komputer obliczający proste równanie w kółko.

to mówi, że fraktale można traktować jako proces iteracyjny i powtarzalny. Rozważ nasiona słonecznika na poniższym obrazku:

źródło: https://www.greenmylife.in/shop/seeds/flowering-annuals-seeds/sunflower-seeds/large-bloom-sunflower/

jak widzicie, istnieje tam obserwowalna Sekwencja. Wzór, który podąża za ciągiem Fibonacciego, jest matematycznym zachowaniem tła, po którym następuje ziarno słonecznika. Ponieważ jest iteracyjny i powtarzany, można myśleć o silnia, którego równanie jest w dużym stopniu zależne od złotej racji (1,618…), która jest stosunkiem liczby do poprzedniej liczby w ciągu Fibonacciego.

istnieje wiele naturalnych procesów, które następują po bardzo specyficznym, powtarzalnym procesie i wydaje się, że silne matematyczne tło rządzi ich zachowaniem.

fraktale Julii

„Julia” to klasa złożonych funkcji matematycznych, których zachowanie, choć powtarzalne, jest uważane za „chaotyczne”. Według artykułu Wikipedii:

Chaos: kiedy teraźniejszość określa przyszłość, ale przybliżona teraźniejszość w przybliżeniu nie określa przyszłości.

zgodnie z bardzo prostym, ale eleganckim wyjaśnieniem tutaj:

fraktale zbioru Julii są zwykle generowane przez inicjalizację liczby zespolonej z = x + yi, gdzie i^2 = -1 oraz X i y są współrzędnymi pikseli obrazu w zakresie od -2 do 2. Następnie z jest wielokrotnie aktualizowane za pomocą: Z = Z^2 + C gdzie c jest kolejną liczbą zespoloną dającą określony zbiór. Po wielu iteracjach, Jeśli wielkość Z jest mniejsza niż 2 mówimy, że piksel jest w zbiorze Julii i odpowiednio go pokolorujemy. Wykonanie tego obliczenia dla całej siatki pikseli daje obraz fraktalny.

To prawie wszystko, a teraz zobaczymy, jak możemy zaimplementować to wszystko w bardzo krótkim skrypcie Pythona.

po pierwsze, potrzebujemy jakiejś biblioteki do radzenia sobie z obrazami, a innej do radzenia sobie z wykresami.

Importowanie niezbędnych rzeczy

następnie musimy zdefiniować pewne globalne stałe, które pomogą nam w procesie generowania fraktali.

następnie widzimy potęgę całego postu, podstawową funkcję, która generuje fraktal i zwraca obraz bitmapowy. Niektóre domyślne dane wejściowe dla funkcji są ustawione, które wygenerują dokładny fraktal, użyty na zdjęciu okładkowym tego postu, ale możesz dostosować różne dane wejściowe, aby wygenerować własne unikalne fraktale. Kod jest nieco zmodyfikowaną formą oryginalnego rdzenia zapisanego tutaj.

teraz, ponieważ masz zdefiniowaną funkcję, musisz ją wywołać i narysować w ten sposób:

aby ułatwić Ci życie, Oto kompletny kod w jednym tekście (na wypadek, gdybyś nie miał ochoty kopiować pojedynczych fragmentów).

próbowałem z kilkoma konfiguracjami, a oto kilka ciekawych wyników:

Julia Fraktal: cX = 0,285, cY = 0,01, colorTup = (14, 13, 7)

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

i na koniec spróbujmy uzyskać coś „gotyckiego”, zmieniając nasze wejścia.

Julia Fraktal: cX = -0,7269, cY = 0.1888, maxIter = 255, colorTup = (0, 0, 1)

jak widać, z bardzo małą zmianą (w obrębie mniej niż 1 jednostki) we wejściach naszej funkcji, możemy wygenerować zupełnie nowy ciąg. To chaos. Przybliżona teraźniejszość nie przewiduje przybliżonej przyszłości. Ujmując to w prosty sposób,

to tak, jakbym miał pędzel, wybieram kilka kolorów, ale nie mam pojęcia, co zrobi pędzel, gdy tylko dotknie płótna. To tylko maluje chaos.

co dalej? Możemy wygenerować fraktale 3D, które wyglądają o wiele fajniej niż cokolwiek, co widzieliście, jeśli są renderowane z odpowiednimi szczegółami.

oto miłe wyzwanie dla Ciebie, jeśli chcesz przenieść je na zupełnie nowy poziom. Jeśli możesz generować takie obrazy, jestem pewien, że będziesz w stanie generować również filmy, a może w końcu otrzymasz coś tak fajnego jak to:

źródło: https://en.wikipedia.org/wiki/Julia_set#/media/File:JSr07885.gif

to tylko wstęp do fraktali Julii. Istnieje wiele innych rodzajów fraktali, które mogą być generowane poprzez modyfikację podstawowego równania, i-e z = Z2 + c. będę naprawdę (jak, naprawdę YYYY) zadowolony, jeśli rzeczywiście znaleźć nowe, lepsze wzorce przy użyciu innych rodzajów fraktali, i może wymyślić jakiś oszałamiający dorobek artystyczny. W razie czego, daj mi znać. Podpisuje się NOR teraz!

You might also like

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.