Strona główna Sztuka Generatywna Grafika żółwia i L-Systemy — interaktywny symulator sztuki fraktalnej

🐢 Grafika żółwia i L-Systemy — interaktywny symulator sztuki fraktalnej

Poznaj grafikę żółwia w L-Systemach. Wybierz krzywą smoka, płatek Kocha, trójkąt Sierpińskiego, krzywą Hilberta, roślinę fraktalną albo wpisz własne reguły. Reguluj liczbę iteracji, kąt i kolory.

Sztuka Generatywna3DŁatwy60 FPS
turtle-graphics ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

Podobne symulacje

O tej symulacji

Ten symulator przepisuje ciąg aksjomatu przy użyciu reguł produkcji dla poszczególnych znaków (F, X, Y — lub A/B dla krzywej Hilberta, G dla trójkąta Sierpińskiego) przez wybraną liczbę iteracji, a następnie przekazuje otrzymany ciąg wirtualnemu żółwiowi: F/G przesuwają go do przodu i rysują linię, +/- obracają go o wartość ustawioną suwakiem kąta, a [/] odkładają na stos i przywracają ze stosu pozycję oraz kierunek żółwia, co umożliwia tworzenie rozgałęzionych struktur, takich jak roślina fraktalna czy drzewo binarne. Sześć presetów — krzywa smoka, płatek Kocha, trójkąt Sierpińskiego, krzywa Hilberta, roślina fraktalna i drzewo binarne — wczytuje dopasowane aksjomaty, reguły i kąty, ale każde pole można edytować, by stworzyć własny L-system.

🔬 Co pokazuje

Symulacja na żywo pokazuje wykładniczy wzrost długości ciągu: przy 10 iteracjach krzywa smoka ma już 1024 kroki rysowania, a aplikacja śledzi długość ciągu, liczbę kroków rysowania, maksymalną głębokość stosu (głębokość rozgałęzień) oraz czas rysowania w milisekundach w miarę zmiany ustawień.

🎮 Jak korzystać

Wybierz przycisk presetu, aby wczytać jego aksjomat i reguły, albo wpisz własne w polach Axiom, Rule F, Rule X i Rule Y. Przeciągnij suwak Angle (1°–180°) oraz suwak Iterations (1–14), by zmienić kształt krzywej, a następnie kliknij ▶ Draw (lub +/- Iter dla szybkich kroków). Przełączaj kolorowanie Rainbow (odcień zmienia się wzdłuż ścieżki) lub Mono (jednolita fioletowa linia).

💡 Czy wiesz, że...

Krzywa smoka ma wymiar fraktalny dokładnie równy 2 — co oznacza, że przy dużej liczbie iteracji wypełnia całą płaszczyznę — podczas gdy płatek Kocha ma wymiar log(4)/log(3) ≈ 1,261, a trójkąt Sierpińskiego log(3)/log(2) ≈ 1,585.

Najczęściej zadawane pytania

Co właściwie robią symbole F, +, -, [ i ]?

F (oraz G, używane wyłącznie w presecie Sierpiński) każe żółwiowi przesunąć się o jedną jednostkę do przodu, rysując linię. + obraca żółwia w lewo o wartość ustawioną suwakiem Angle w stopniach, a - obraca go w prawo o tę samą wartość. [ odkłada bieżącą pozycję x, y oraz kierunek żółwia na stos; ] przywraca ostatni zapisany stan, przenosząc żółwia z powrotem do miejsca rozgałęzienia — dokładnie w ten sposób presety Fractal Plant i Binary Tree tworzą boczne gałęzie.

Dlaczego ciąg tak szybko robi się bardzo długi?

Każda iteracja zastępuje jednocześnie wszystkie pasujące znaki pełnym tekstem reguły (przepisywanie równoległe), więc długość ciągu rośnie w przybliżeniu wykładniczo, z podstawą zależną od współczynnika ekspansji reguły. Preset krzywej smoka osiąga 1024 kroki rysowania przy 10 iteracjach i może przekroczyć 16 000 przy iteracji 14 — kod ogranicza ekspansję do 2 000 000 znaków jako zabezpieczenie.

Czym różni się sześć presetów?

Krzywa smoka (aksjomat FX, kąt 90°) i płatek Kocha (F--F--F, 60°) korzystają z prostego przepisywania jednej linii; Sierpiński (F-G-G, 120°) na przemian stosuje reguły F i G; krzywa Hilberta (aksjomat A, 90°) używa sparowanych reguł A/B, by uzyskać ścieżkę wypełniającą przestrzeń; roślina fraktalna (aksjomat X, 25°) i drzewo binarne (aksjomat F, 20°) dodają nawiasy [ i ], tworząc rozgałęzione, przypominające liście kształty zamiast jednej ciągłej krzywej.

Co zmienia tryb kolorowania Rainbow w porównaniu z Mono?

Rainbow przypisuje każdemu narysowanemu odcinkowi odcień zależny od jego pozycji w całej sekwencji kroków (0–360°), tworząc gradient wzdłuż całej krzywej. Mono rysuje całą ścieżkę jednym fioletowym kolorem (#a78bfa) i, w odróżnieniu od Rainbow, przerywa ścieżkę na płótnie przy każdym punkcie rozgałęzienia, dzięki czemu segmenty są rysowane jako jedna ciągła linia na gałąź.

Dlaczego suwak Iterations sięga tylko do 14?

Ponieważ każda iteracja mniej więcej podwaja lub potraja długość ciągu w zależności od zestawu reguł, znacznie wyższe wartości generowałyby miliony znaków i kroków rysowania, spowalniając przeglądarkę do minimum. Suwak Iterations jest ograniczony do 14, a sama pętla budująca ciąg zatrzymuje się wcześniej, jeśli przepisany ciąg przekroczy 2 000 000 znaków.