Strona główna Sztuka Generatywna Fraktale L-System

🌿 Fraktale L-System

Twórz fraktalne rośliny, drzewa i krzywe za pomocą gramatyki Lindenmayera i grafiki żółwia. Płatek Kocha, krzywa smoka, Sierpiński, paproć Barnsleya, krzywa Hilberta i więcej.

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

O Fraktalach L-System

Ta symulacja generuje fraktalne rośliny, płatki śniegu i krzywe wypełniające przestrzeń za pomocą systemu Lindenmayera (L-systemu): formalnej gramatyki, która przepisuje ciąg startowy, zwany aksjomatem, jednocześnie zastępując każdy symbol prawą stroną jego reguły produkcji. Po wybranej liczbie iteracji długi ciąg wynikowy jest odczytywany przez interpreter grafiki żółwia, w którym każdy symbol jest poleceniem rysowania, co pozwala uzyskać samopodobną geometrię z zaledwie garści prostych reguł.

🔬 Co przedstawia

Ustawiasz aksjomat, edytujesz jedną lub więcej reguł produkcji (F → FF+[…]) oraz dostosowujesz liczbę iteracji (1–9) i kąt obrotu (5°–90°). Żółw odczytuje F, G, A i B jako „narysuj do przodu”, + i − jako obrót w lewo/prawo o zadany kąt, a [ i ] jako zapisanie i przywrócenie pozycji oraz kierunku, co tworzy rozgałęzienia.

🎮 Jak korzystać

Wbudowane presety obejmują płatek Kocha, krzywą smoka, trójkąt Sierpińskiego, krzywą Hilberta i paproć Barnsleya. Wybierz preset lub napisz własny aksjomat i reguły, a następnie przesuń suwaki iteracji i kąta, by zobaczyć, jak zmienia się kształt — przyciski Rysuj i Dopasuj pozwalają odświeżyć i wykadrować rysunek.

💡 Czy wiesz, że?

L-systemy powstały w 1968 roku, gdy botanik Aristid Lindenmayer szukał sposobu na opisanie podziału komórek i wzrostu pędów roślin. Dziś ta sama gramatyka przepisywania ciągów napędza proceduralną roślinność w grach, filmach animowanych i modelowaniu botanicznym.

Najczęściej zadawane pytania

Czym jest L-system?

L-system, czyli system Lindenmayera, to równoległa gramatyka przepisywania ciągów znaków, wymyślona przez botanika Aristida Lindenmayera w 1968 roku do modelowania wzrostu roślin. Zaczynasz od aksjomatu i wielokrotnie zastępujesz jednocześnie każdy symbol za pomocą reguł produkcji. Powstały ciąg jest następnie rysowany jako geometria, dając skomplikowane, samopodobne formy fraktalne.

Jak działa interpreter grafiki żółwia?

Wirtualny „żółw” przechodzi przez końcowy ciąg symbol po symbolu. F, G, A i B przesuwają go do przodu, rysując jednocześnie odcinek linii, + obraca go w lewo o ustawiony kąt, a − obraca go w prawo. Nawiasy kwadratowe [ i ] zapisują i przywracają pozycję oraz kierunek żółwia, co właśnie tworzy rozgałęzienia.

Co robią suwaki Iteracje i Kąt?

Iteracje (od 1 do 9) ustalają, ile razy zastosowane zostaną reguły przepisywania, więc wyższe wartości dają znacznie więcej szczegółów, ale wykładniczo dłuższe ciągi. Kąt (od 5° do 90°) to wartość, o jaką żółw obraca się przy każdym poleceniu + lub −. Niewielkie zmiany kąta mogą drastycznie zmienić rozpiętość rośliny lub kształt krzywej.

Co oznacza reguła produkcji taka jak F → FF+[−F]?

Oznacza to: za każdym razem, gdy pojawia się symbol F, zastąp go ciągiem FF+[−F]. Wszystkie symbole F są podstawiane jednocześnie w jednym przebiegu, a następnie kolejna iteracja znów dokonuje podstawienia. Symbole bez reguły, takie jak + czy [, pozostają niezmienione, działając jako stałe polecenia żółwia, a nie jako podstawialne zmienne.

Dlaczego ciąg rośnie tak szybko wraz z liczbą iteracji?

Ponieważ przepisywanie ma charakter wykładniczy. Jeśli reguła zastępuje jeden symbol kilkoma, ciąg mniej więcej mnoży swoją długość przy każdym przebiegu, więc dziewięć iteracji może osiągnąć setki tysięcy znaków. Ta symulacja zawiera zabezpieczenie, które zatrzymuje rozrost, gdy ciąg przekroczy 500 000 symboli, aby przeglądarka pozostała responsywna.

Jak zbudowany jest płatek Kocha z reguł?

Zaczyna się od aksjomatu F--F--F, czyli trójkąta równobocznego, z pojedynczą regułą F → F+F--F+F i kątem 60°. Każdy odcinek zostaje zastąpiony mniejszym zygzakowatym wybrzuszeniem, więc obwód rośnie bez ograniczeń, podczas gdy pole zamknięte pozostaje skończone — to charakterystyczny fraktalny paradoks.

Czy te kształty są fizycznie dokładnymi modelami roślin?

Są to raczej matematyczne idealizacje niż dokładna botanika, ale L-systemy niezwykle dobrze oddają logikę rozgałęziania się prawdziwych roślin. Lindenmayer zaprojektował je właśnie po to, by opisać podział komórek i wzrost pędów, a presety takie jak paproć Barnsleya pokazują, jak przekonująco naturalny kształt liścia wyłania się zaledwie z dwóch reguł produkcji.

Jaki jest wymiar fraktalny pokazywany przez preset Sierpińskiego?

Trójkąt Sierpińskiego ma wymiar fraktalny log3/log2, czyli około 1,585. Ta niecałkowita wartość oznacza, że jest on czymś więcej niż linią, lecz mniej niż wypełnioną płaszczyzną: gdy przybliżasz obraz, te same trójkątne otwory powtarzają się w każdej skali, co jest cechą definiującą fraktal samopodobny.

Dlaczego głębsze gałęzie są rysowane w innym odcieniu?

Interpreter zapisuje głębokość stosu każdego odcinka, czyli liczbę otwartych nawiasów go otaczających. Renderer mapuje tę głębokość na przezroczystość linii, więc głębsze, cieńsze gałązki wydają się jaśniejsze na ciemnym tle. Daje to wrażenie trójwymiarowego uwarstwienia, mimo że rysunek jest czysto dwuwymiarowy.

Gdzie w praktyce wykorzystywane są L-systemy?

Napędzają proceduralne generowanie drzew, paproci, trawy i koralowców w grach wideo i filmach generowanych komputerowo, a także są wykorzystywane w badaniach botanicznych do symulowania wzrostu. Warianty wypełniające przestrzeń, takie jak krzywa Hilberta, pojawiają się również w przetwarzaniu obrazów, kompresji danych i indeksowaniu baz danych przestrzennych.

Podobne symulacje