Fraktál-generátor

A szerver PHP GD-vel, pixelenként számolja ki a Mandelbrot-, Julia- és Burning Ship-halmazokat. Görgess vagy csippents a nagyításhoz, húzd a képet a mozgatáshoz, kattints duplán a közelítéshez: a kép azonnal mozog, az éles rész pedig csempénként, a szerverről érkezik meg.

Nagyítás

1×

Az első kép még készül a szerverenRe -0.500000 Im 0.00000Görgő vagy csípés: nagyítás. Húzás: mozgatás. Dupla kattintás: közelít (Shift: távolít). Shift + húzás: téglalapos nagyítás. Billentyűzet: nyilak, + és -, 0.

Típus

Híres helyek

Tengerilovacska-völgy
Elefánt-völgy
Mini-Mandelbrot
Spirál
Tengeri csillag
Háromágú csillag
Szigetek
Mély spirálok

Színátmenet

A színskálát a nézet hisztogramjához igazítja, így a mély nézetek sem lesznek laposak.Színsávok

Részletesség

Több iteráció és nagyobb felbontás, de lassabb szerveroldali renderelés.

Mi az a Mandelbrot-halmaz, és hogyan készül ez a kép?

A Mandelbrot-halmaz azokat a komplex c számokat tartalmazza, amelyekre a z → z² + c iterációt z = 0-ból indítva a sorozat soha nem távolodik el a végtelenbe. A halmazhoz tartozó pontok adják a kép sötét belsejét, amit a szerver a sorozat pályájának alakja szerint finoman árnyal.

Az escape-time algoritmus minden képponthoz egy komplex számot rendel, majd megszámolja, hány lépés után lépi túl a sorozat a küszöböt. Hogy ne legyenek lépcsős sávok, a szerver a folytonos (normalizált) iterációszámot használja, a színeket pedig perceptuálisan egyenletes OKLab-térben interpolálja, opcionálisan a nézet hisztogramjához kiegyenlítve.

A Julia-halmazok a Mandelbrot közeli rokonai: ugyanaz a z → z² + c képlet, de itt c fix konstans, és minden képpont a saját kezdőértékével indul. A "Julia-halmaz ebből a pontból" gombbal a Mandelbrot-halmaz bármely pontjához megnézheted a hozzá tartozó Julia-halmazt.

A Burning Ship minden lépés előtt a valós és a képzetes rész abszolútértékét veszi, és ez hozza létre a nevét adó, hajóra emlékeztető alakzatokat.

A nagy kép PHP-ban pixelenként számolva drága, ezért a böngésző először egy kis előnézetet kér, majd az éles képet csempékre bontva, párhuzamosan: a csempék egyetlen közös pixelrácson osztoznak, ezért varrat nélkül illeszkednek. A szerver a halmaz belsejét periódus-felismeréssel és zárt alakú képletekkel gyorsítja, és a nagyítással együtt növeli az iterációk számát, hogy a határ ne essen szét.

A mélységnek fizikai határa van: a dupla pontosságú szám körülbelül 16 számjegyet tud tárolni, ezért 10¹² körüli nagyításnál a szomszédos képpontok már ugyanarra a számra kerekednének. Itt a generátor megáll, és szól, ahelyett hogy szétesett képet mutatna.