Pokaz fraktali typu L-system
Funkcja programu
Program prezentuje fraktale definiowane przez L-systemy.
Jego zasadniczy algorytm jest adaptacją w języku Java algorytmu
przedstawionego w [ 1 ]
L-systemy są również opisane w [ 2 ]
Parametry L-systemu
L-system jest określony jako przekształcenia ciągów symboli.
Przekształcenia ciągów symboli
Przekształcenia te polegają na tym, że każdy symbol jest zastępowany przez
ciąg symboli określony przez odpowiednią regułę, nazywaną regułą
podstawiania. Do przekształconego ciągu
stosuje się znów te same reguły itd. Ilość takich kroków określa użytkownik, w
okienku parametrów nazwana jest ona poziomem rekursji
Pierwszy przekształcony ciąg nazywa się aksjomatem.
Wizualizacja
Po wykonaniu wszystkich przekształceń tak utworzony ciąg jest wizualizowany
na ekranie. Do wizualizacji stosuje się ideę tzw żółwia. Polega
ona na tym, że każdemu symbolowi w ostatecznym ciągu odpowiada pewna akcja
żółwia.
Żółw może wykonać jedną z 8 akcji, oznaczanych następującymi symbolami:
F posunąć się o stały odcinek zostawiając ślad (czyli
nakreślić linię)
f posunąć się o stały odcinek nie zostawiając śladu
+ zmienić kąt poruszania się o stałą wielkość beta w
kierunku przeciwnym do ruchu wskazówek zegara
- zmienić kąt poruszania się o stałą wielkość beta w kierunku
zgodnym z ruchem wskazówek zegara
A+nnnn zmienić kąt poruszania się o zadaną wielkość nnnn w
kierunku przeciwnym do ruchu wskazówek zegara
A-nnnn zmienić kąt poruszania się o zadaną wielkość nnnn w
kierunku zgodnym z ruchem wskazówek zegara
r+nnnn zmienić kąt poruszania się o losową wielkość nnnn w
kierunku przeciwnym do ruchu wskazówek zegara
r-nnnn zmienić kąt poruszania się o zadaną wielkość nnnn w
kierunku zgodnym z ruchem wskazówek zegara
Przyjmuje się, że w każdym kroku rekursji odcinek, o który przesuwa
się żółw jest zmniejszany o ustalony współczynnik (mniejszy od 1) skurcz.
Oprócz symboli F f + - w regułach można stosować symbole
pomocnicze: G H I J X Y
W takim przypadku każdy symbol pomocniczy musi być zdefiniowany przez
symbole F f + -
Reguły podstawiania podaje się w postaci:
symbol : ciąg symboli podstawianych
Definicje podaje się w postaci:
symbol = ciąg symboli które go definiują
Jeźeli symbol pomocniczy nie zostanie zdefiniowany, to przy wizualizacji
(nie przy przekształcaniu) zostanie zignorowany
Parametry dla programu
Parametry dla programu można wprowadzać w okienku programu albo
wczytywać z pliku. Umownym rozszerzeniem pliku opisu L-systemu jest
Lsys.
Przykładowy plik opisu L-systemu
Drzewo symetryczne
Skurcz: 0.5
Beta: 25.7
AlfaPocz: 90.0
Iteracji: 10
KrokPocz: 100.0
Przekszt:
A:X
F:FF
X:F[+X][-X]FX
Pliki potrzebne do pracy programu
Do wykonania programu potrzebne są pliki:
FraktPanel.class
HelpFrame$1.class
HelpFrame$2.class
HelpFrame$3.class
HelpFrame.class
IndriScanfExc.class
IndriScanfX.class
JFileFilter.class
ObrazEkranu.class
Qlsyst$1.class
Qlsyst.class
Rysunek.class
StanSzuk.class
TURTLE.class
Qlsyst.html
Do skompilowania wszystkich plików potrzebne są pliki źródłowe:
Qlsyst.java
HelpFrame.java
IndriScanfExc.java
IndriScanfX.java
JFileFilter.java
ObrazEkranu.java
Literarura
1. Tomasz Martyn: Fraktale i obiektowe algorytmy ich wizualizacji Rozdział 4
Wydawnictwo Mikom Poznań 1996
2. H-O Peitgen, H. Juergens D. Saupe: Granice chaosu Fraktale
Wydawnictwo Naukowe PWN Warszawa 1996
Test pokazu polskich liter
Cygańskie źrebię ma żółtą sierść
CYGAŃSKIE ŹREBIĘ MA ŻÓŁTĄ SIERŚĆ