kul med fraktaler (Julia)

något riktigt enkelt jag hittade här:

en fraktal är ett oändligt mönster. Fraktaler är oändligt komplexa mönster som är självliknande över olika skalor. De skapas genom att upprepa en enkel process om och om igen i en pågående återkopplingsslinga. Drivna av rekursion är fraktaler bilder av dynamiska system — bilderna av kaos. Geometriskt finns de mellan våra bekanta dimensioner. Fraktala mönster är extremt bekanta, eftersom naturen är full av fraktaler. Bl: träd, floder, kustlinjer, Berg, moln, snäckskal, orkaner etc. Abstrakta fraktaler – som Mandelbrot-uppsättningen-kan genereras av en dator som beräknar en enkel ekvation om och om igen.

vad detta säger är att fraktaler kan betraktas som en process som är iterativ och repetitiv. Tänk på solrosfrön i bilden nedan:

källa: https://www.greenmylife.in/shop/seeds/flowering-annuals-seeds/sunflower-seeds/large-bloom-sunflower/

som du kan se finns en observerbar sekvens där inne. Mönstret, som följer Fibonacci-sekvensen är det matematiska bakgrundsbeteendet som följs av solrosfrön. Eftersom det är iterativt och upprepat kan man tänka på en faktor vars ekvation är mycket beroende av den gyllene rationen (1.618…), vilket är förhållandet mellan ett tal och föregående tal i en Fibonacci-sekvens.

det finns många naturliga processer, som följer en mycket specifik, repetitiv process, och det verkar som om en stark matematisk bakgrund styr deras beteende.

Julia Fractals

” Julia ”är en klass av komplexa matematiska funktioner, vars beteende, även om det är repetitivt, sägs vara”kaotiskt”. Enligt en Wikipedia-artikel:

kaos: när nutiden bestämmer framtiden, men den ungefärliga nutiden bestämmer inte ungefär framtiden.

enligt en mycket enkel men elegant förklaring här:

Julia set fraktaler genereras normalt genom att initiera ett komplext tal z = x + yi där i^2 = -1 och x och y är bildpixelkoordinater i intervallet ca -2 till 2. Sedan uppdateras z upprepade gånger med: z = z^2 + c där c är ett annat komplext tal som ger en specifik Julia-uppsättning. Efter många iterationer, om storleken på z är mindre än 2 säger vi att pixel är i Julia-uppsättningen och färgar den därefter. Att utföra denna beräkning för ett helt rutnät med pixlar ger en fraktalbild.

Japp. Det handlar ganska mycket om det, och nu får vi se hur vi faktiskt kan implementera allt detta i ett mycket kort python-skript.

först behöver vi lite bibliotek för att hantera bilderna och ett annat bibliotek för att hantera plottningen.

importera nödvändiga saker

Därefter måste vi definiera några globala konstanter päls oss, vilket kommer att hjälpa till i fraktalgenerationsprocessen.

därefter ser vi kraftverket i hela detta inlägg, kärnfunktionen som faktiskt genererar en fraktal och returnerar en bitmappsbild. Vissa standardingångar för funktionen är inställda, vilket kommer att generera den exakta fraktalen, som används i omslagsbilden i det här inlägget, men du kan tweak runt med olika ingångar för att skapa dina egna unika fraktaler. Koden är något en modifierad form av den ursprungliga kärnan skriven här.

nu eftersom du har en definierad funktion behöver du bara ringa den och plotta den så här:

bara för att göra livet enklare för dig, här är den fullständiga koden i en enda kontentan (ifall du inte känner för att kopiera enskilda utdrag).

jag försökte med flera konfigurationer, och här är några intressanta resultat:

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

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

och slutligen, låt oss försöka få något ”Gotiskt” genom att ändra våra ingångar.

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

som du kan se, med en mycket liten förändring (inom mindre än 1 enhet) i ingångarna till vår funktion, kan vi generera en helt ny sekvens. Det är kaos. Den ungefärliga nuvarande förutsäger inte ungefärlig framtid. För att uttrycka det på ett enkelt sätt,

det är som om jag har en pensel, jag väljer några färger, men jag har ingen aning om vad borsten ska göra så snart den rör på duken. Det målar bara kaos.

vad händer härnäst? Vi kan generera 3D-fraktaler, som ser mycket svalare ut än vad du kanske har sett, om de återges med korrekta detaljer.

här är en trevlig utmaning för dig om du vill ta det till en helt ny nivå. Om du kan generera bilder så här är jag säker på att du också kan generera videor och kan sluta få något så coolt som det här:

källa: https://en.wikipedia.org/wiki/Julia_set#/media/File:JSr07885.gif

detta är bara en introduktion till Julia fractals. Det finns många andra typer av fraktaler, som kan genereras genom att modifiera den underliggande ekvationen, i-E z = z2+c. Jag kommer verkligen (som, reallyyy) glad om du faktiskt räknar ut nyare, bättre mönster med andra typer av fraktaler och kan komma med en fantastisk konstnärlig produktion. Om du gör det, låt mig veta. Logga in eller nu!

You might also like

Lämna ett svar

Din e-postadress kommer inte publiceras.