Strona głównaArtykułyDrzewo Fraktalne

Drzewa Fraktalne: Rekurencja, Rozgałęzianie i Złoty Kąt

Wypisz drzewo z jednej rekurencyjnej reguły – głębokości, współczynnika i rozszerzenia – i zobacz, jak złoty kąt i systemy L-systemów wyjaśniają, dlaczego prawdziwe rośliny rozgałęziają się w ten sposób.

mysimulator teamZaktualizowano — czerwiec 2026≈ 6 min czytania▶ Otwórz symulację

Drzewo to zasada zastosowana do samej siebie

Drzewo fraktalne jest budowane z jednej idei, powtarzanej: narysuj gałąź, a następnie narysuj dwa (lub więcej) mniejsze gałęzie od jej końców, każda obrotowa o некоторый kąt, a następnie powtórz ten sam krok na każdej z tych nowych gałęzi. Jest to rekurencja – funkcja wywołująca się sama do siebie z mniejszym wariantem problemu – i jest to niezwykle dobry dopasowanie do sposobu, w jaki rzeczywiście rosną rośliny, ponieważ rosnący pęd nie wie i nie obchodzi go, ile generacji gałęzi poprzedzających go zostało; po prostu podąża za tym samym lokalnym prawem wzrostu, jakie wyznaczyła jego rodzicielska gałąź.

funkcja branch(długość, kąt): narysuj linię o tej długości i w tym kącie jeśli długość > minimalna: branch(długość * współczynnik, kąt - rozpięcie) // lewy potomek branch(długość * współczynnik, kąt + rozpięcie) // prawy potomek demo na żywo · rekurencyjne drzewo gałęziste, kołyszące się wiatr● ŻYWO Każde wywołanie funkcji branch() zmniejsza długość o stały współczynnik (zwykle około 0,6 do 0,75) i obrót o kąt rozpięcia przed rozmnażaniem własnych potomków. Trzy liczby – głębokość, współczynnik i rozpięcie – kontrolują cały kształt: mała głębokość daje rzadkie sadzonki, duża głębokość daje gęstą, liściastą koronę; szerokie rozpięcie daje szeroką, krzaczastą formę, a wąskie rozpięcie daje wysoką, kolumnową formę. Ten rodzaj samoreferencyjnego systemu generowania struktur gałęziowych jest formalnie nazywany systemem L (Lindenmayer system), nazwanym na cześć biologa Aristida Lindenmayera, który wprowadził je w 1968 roku specjalnie do modelowania, jak rosną algi i rośliny komórka po komórce.

function branch(length, angle):
    draw a line of this length at this angle
    if length > minimum:
        branch(length * ratio, angle - spread)   // left child
        branch(length * ratio, angle + spread)   // right child
demo na żywo · powiązana symulacja● LIVE

Dlaczego rośliny rzeczywiście się rozgałęziają

Prawdziwe drzewa nie działają dosłownie jak funkcja rekurencyjna, ale podobieństwo to nie przypadek. Wierzchołek wzrostu (merystem) reaguje na tę samą niewielką liczbę lokalnych sygnałów niezależnie od tego, ile generacji gałęzi poprzedzało go – dostęp światła, grawitacja i hormony wzrostu chemiczne zwane auxynami – i nie ma w ogóle możliwości wiedzieć, jaki kształt ma drzewo jako całość lub jaką historię posiada. Ponieważ każdy wierzchołek podąża za tą samą lokalną zasadą, emergentny cały kończy się samo-podobieństwem: pojedyncza gałąź, widziana oddzielnie, statystycznie przypomina miniaturę całego drzewa. To dokładnie właściwość rekurencyjna i skalarna, którą matematycy nazywają fraktalem.

Złoty kąt pojawia się w naturze, nie tylko w kodzie

Wiele prawdziwych roślin rozmieszcza liście, nasiona lub gałęzie wokół pędu pod bardzo specyficznym kątem obrotu: złoty kąt, o wartości około 137.5°, wyprowadzony z złotej proporcji φ ≈ 1.618. Obracanie się o ten dokładny niewymierny kąt w każdym nowym punkcie wzrostu jest najefektywniejszym sposobem na zapakowanie liści wokół pędu bez ich całkowitego nakładania się, co powoduje jego niezależne powtarzanie się we wszystkich niezwiązanych rodzinach roślin – główki chleba słonecznika, łuski iglastej i spiralny układ liści na wielu pędach (dziedzina badań zwana filotaksją). Stanowi to imponujący przypadek tego samego prostego rekurencyjnego reguły obrotu pojawiającego się wielokrotnie w naturze, ponieważ przypadkowo rozwiązuje dobrze rzeczywisty problem pakowania.

golden angle  =  360° × (1 − 1/φ)  ≈  137.507764°
where φ (phi) = (1 + √5) / 2 ≈ 1.618033989

Dodawanie wiatru: przekształcanie statycznego fraktala w symulację

W pełni rekurencyjny drzewo jest statyczną geometrią. Aby je poruszać, symulacja na tej stronie zakłóca parametr kąta na każdym gałąźciu z wykorzystaniem funkcji okresowej o płynnym przebiegu (warstwowe fale sinus o różnych częstotliwościach, czasem nazywane szum proceduralny), a amplituda zakłócenia maleje w kierunku pnia i rośnie ku końcom – naśladując ruch grubszy gałęzi drzewa, która ledwo się porusza, podczas gdy cienkie konce gałąź drgają w wietrze. Ponieważ ruch każdej gałęzi jest obliczany względem pozycji jej rodzica, już oscylujący, małe wibracje u podstawy składają się na znacznie większe, bardziej chaotyczne ruchy na końcach liści, tak jak uchwyt lwiącej się gracji porusza się delikatnie, a jej koniec łukiem rozbija się.

Frequently asked questions

Co się stanie, jeśli zwiększysz głębokość rekursji zbyt daleko?

Drzewo staje się wykładniczo bardziej szczegółowe i wolniejsze w renderowaniu, ponieważ liczba gałęzi rośnie w przybliżeniu dwukrotnie z każdym dodatkowym poziomem głębokości (dla prostego prawa dwóch potomków). Po przekroczeniu pewnej głębokości gałęzie również stają się krótsze niż pojedynczy piksel, zwiększając gęstość wizualną bez dodawania żadnych nowych informacji.

Dlaczego niektóre drzewa fraktalne wyglądają bardziej realistycznie niż inne?

Realizm wynika głównie z wariacji stosunku, rozrzutu i nawet liczby gałęzi potomnych w każdym podziale, zamiast używać idealnie identycznych wartości wszędzie. Rzeczywiste rośliny mają nieregularności spowodowane nierównomiernym oświetleniem, uszkodzeniami i genetyką, dlatego niewielka ilość losowości w każdym parametrze znacznie przyczynia się do uniknięcia oczywistego, symetrycznego wyglądu.

Czy złoty kąt jest jedynym kątem rozstawu, którego używają rośliny?

Nie, ale jest niezwykle powszechne ze względu na to, że jest to irracjonalny kąt, który trudno dokładnie oszacować przy pomocy prostego ułamka, co minimalizuje nakładanie się kolejnych liści lub nasion podczas spiralnego rozchodzenia się na zewnątrz. Niektóre rośliny używają innych, prostszych spacings kątowych, szczególnie gdy liście nie są dodawane ciągłym strumieniem, ale w zlepkach lub parach.

Wypróbuj na żywo

Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz Fractal Tree i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.

▶ Otwórz symulację Fractal Tree

Co znalazłeś?

Dodaj kroki odtworzenia (opcjonalnie)