Strona główna Sztuka Generatywna Eksplorator zbioru Mandelbrota

🌀 Eksplorator zbioru Mandelbrota

Odkrywaj nieskończoną złożoność zbioru Mandelbrota. Kliknij, by przybliżyć dowolny obszar, przeciągaj, zmieniaj kolory i liczbę iteracji. Presety prowadzą do słynnych miejsc: Doliny Konika Morskiego, Doliny Słonia, mini-Mandelbrotów i innych.

Sztuka Generatywna3DŁatwy30 FPS
mandelbrot ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

O Eksploratorze zbioru Mandelbrota

Ten eksplorator renderuje zbiór Mandelbrota — zbiór liczb zespolonych c, dla których iteracja z(n+1) = z(n)² + c, zaczynając od z = 0, pozostaje ograniczona. Każdy piksel odpowiada punktowi c na płaszczyźnie zespolonej i jest iterowany w czasie rzeczywistym na karcie graficznej za pomocą shadera fragmentów WebGL. Punkty, które nigdy nie przekraczają promienia ucieczki, są rysowane na czarno; punkty uciekające są kolorowane zależnie od czasu ucieczki.

🔬 Co przedstawia

Suwak Max iterations (od 50 do 1000) ustala, jak długo testowany jest każdy punkt, ujawniając drobniejsze detale przy głębokim powiększeniu kosztem wolniejszego renderowania. Lista Kolor pozwala wybrać między paletami Fire, Ocean, Psychedelic i Grayscale opartymi na funkcji kosinus.

🎮 Jak korzystać

Kliknij lewym przyciskiem, aby przybliżyć dowolny punkt, prawym — by oddalić. Przewijaj kółkiem myszy, by zoomować w miejscu kursora, przeciągaj, by przesuwać widok, lub kliknij dwukrotnie, by przybliżyć. Lista Preset przenosi do słynnych miejsc, takich jak Dolina Konika Morskiego czy Dolina Słonia.

💡 Czy wiesz, że?

Granica zbioru Mandelbrota jest fraktalem: ma nieskończony obwód i samopodobną strukturę na każdej skali powiększenia. Przybliżenie o czynnik 10²⁰⁰ wciąż ujawnia nowe struktury. Pokrewna rodzina, zbiory Julii, powstaje przez ustalenie c i zmianę z₀ — każdy punkt zbioru Mandelbrota odpowiada spójnemu zbiorowi Julii.

Najczęściej zadawane pytania

Czym jest zbiór Mandelbrota?

To zbiór liczb zespolonych c, dla których ciąg z(n+1) = z(n)² + c, zaczynając od z = 0, pozostaje ograniczony, zamiast uciekać do nieskończoności. Na płaszczyźnie zespolonej tworzy on słynny kształt kardioidy z bąblami i nieskończenie skomplikowaną fraktalną granicą.

Jak ta symulacja oblicza obraz?

Każdy piksel na płótnie jest mapowany na współrzędną zespoloną c, a następnie iterowany według wzoru z = z² + c na karcie graficznej. Jeśli moduł z pozostaje poniżej promienia ucieczki aż do limitu iteracji, piksel jest rysowany na czarno; w przeciwnym razie jest kolorowany zależnie od liczby kroków potrzebnych do ucieczki. Cała klatka jest obliczana w shaderze fragmentów WebGL.

Co robi suwak Max iterations?

Ustala maksymalną liczbę iteracji każdego punktu, zanim zostanie uznany za część zbioru — od 50 do 1000, domyślnie 300. Wyższe wartości ujawniają cienkie nitki i drobne struktury widoczne dopiero przy głębokim powiększeniu, ale spowalniają renderowanie, ponieważ każdy piksel wykonuje więcej kroków pętli.

Co przedstawiają palety kolorów?

Opcje Fire, Ocean, Psychedelic i Grayscale to różne gradienty oparte na funkcji kosinus, nakładane na czas ucieczki każdego piksela. Sam kolor nie niesie dodatkowego znaczenia matematycznego — po prostu wizualizuje, jak szybko punkt opuścił obszar ucieczki.

Jakie jest kluczowe równanie tej symulacji?

Podstawową regułą jest z(n+1) = z(n)² + c, iterowane od z = 0, gdzie c to współrzędna piksela na płaszczyźnie zespolonej. Aby uniknąć pasmowania kolorów, eksplorator stosuje płynne kolorowanie, mu = n + 1 minus log2(log2 modułu z), co daje ciągłą wartość ucieczki zamiast skokowej liczby całkowitej.

Dlaczego niektóre obszary są całkowicie czarne?

Czarne piksele to punkty, których iteracje nigdy nie przekraczają promienia ucieczki w ramach limitu iteracji, więc są traktowane jako należące do zbioru. Ponieważ test jest ograniczony wartością Max iterations, część czarnych punktów to w rzeczywistości bardzo wolno uciekające punkty; zwiększenie suwaka może ujawnić w nich drobne detale.

Czy renderowanie jest matematycznie dokładne?

Algorytm czasu ucieczki jest w zasadzie dokładny, ale ten eksplorator wykorzystuje liczby zmiennoprzecinkowe pojedynczej precyzji na karcie graficznej. To wystarcza przy umiarkowanym powiększeniu, jednak przy bardzo głębokim zoomie błędy zaokrągleń powodują, że obraz staje się blokowy. Profesjonalne narzędzia do głębokiego powiększania używają arytmetyki dowolnej precyzji.

Jak głęboko mogę przybliżać, zanim detale przestaną się pojawiać?

Matematycznie granica jest samopodobna w każdej skali, więc struktura nigdy naprawdę się nie kończy. W praktyce ta symulacja jest ograniczona przez pojedynczą precyzję zmiennoprzecinkową, która zaczyna pikselować się po powiększeniu rzędu biliona razy.

Jak zbiór Mandelbrota wiąże się ze zbiorami Julii?

Zbiór Julii ustala wartość c i zmienia punkt startowy z, podczas gdy zbiór Mandelbrota ustala z = 0 i zmienia c. Każdy punkt wewnątrz zbioru Mandelbrota odpowiada spójnemu zbiorowi Julii, więc zbiór Mandelbrota działa jak mapa tego, które zbiory Julii są spójne, a które rozproszonym pyłem.

Jakie są praktyczne zastosowania fraktali czasu ucieczki?

Poza sztuką generatywną idea czasu ucieczki wykorzystywana jest w projektowaniu anten fraktalnych, gdzie samopodobne kształty mieszczą szeroką odpowiedź częstotliwościową na małej powierzchni. Pokrewna matematyka fraktalna pojawia się w kompresji obrazu i sygnału oraz w generowaniu terenu i tekstur do filmów i gier.

Podobne symulacje