Pokaz fraktali typu L-system

Funkcja programu
Parametry programu
Pliki potrzebne do pracy programu


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ŚĆ