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.
1×
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.
Ez az oldal Google Analytics-et használ a látogatottság méréséhez. Ehhez a hozzájárulásod szükséges - részletek az adatvédelmi tájékoztatóban. Adatvédelmi tájékoztató