Gramatyki Lindenmayera Grafika żółwia 3D Gramatyki kontekstowe
Grafika żółwia 3D Pozycję żółwia w trójwymiarowej przestrzeni wyznacza wektor zaś orientację wyznaczają wektory - kierunek głowy żółwia, - kierunek lewy, - kierunek na górę
Grafika żółwia 3D Obrót żółwia o kąt dokoła wektorów , i opisuje się za pomocą trzech macierzy:
Grafika żółwia 3D Rozszerzony zbiór poleceń Symbol Znaczenie Komendy sterujące ruchem żółwia F(l), G(l) Idź do przodu jeden krok o długości l, rysując jednocześnie linię f(l), g(l) Idź do przodu jeden krok o długości l ale bez rysowania linii @O(r) Rysuj sferę o promieniu r i środku w aktualnej pozycji wyznaczonej przez stan żółwia Komendy sterujące obrotami żółwia +() obróć się w lewo o kąt dokoła osi . -() obróć się w prawo o kąt dookoła osi . &() Pochyl się o kąt dookoła osi . ^() Podnieś się o kąt dookoła osi . /() Przewróć się na lewy bok o kąt dookoła osi . \() Przewróć się na prawy bok o kąt dookoła osi . | Obróć się o 180o dookoła osi , to samo można zrealizować za pomocą komend +(180) lub –(180)
Grafika żółwia 3D Rozszerzony zbiór poleceń Komendy, używane podczas rysowania struktur z rozgałęzieniami ] Połóż na stosie aktualny stan położenia żółwia (pozycja, orientacja i atrybuty rysowania) [ Zdejmij ze stosu stan położenia żółwia i przesuń żółwia do pozycji z odczytanego stanu bez rysowania linii. Komendy zmieniające atrybuty rysowanej linii. #(w) Ustaw szerokość linii na wielkość w, jeśli zaś brak parametru zwiększ aktualną wartość szerokości linii o domyślną wielkość !(w) Ustaw szerokość linii na wielkość w ale jeśli brak parametru zmniejsz aktualną wartość szerokości linii przez domyślną wielkość ;(n) Ustaw indeks w palecie barw na n, jeśli jednak brak parametru zwiększ aktualną wartość indeksu o domyślną wielkość ,(n) Ustaw indeks w palecie barw na n, jeśli brakuje parametru to zmniejsz aktualną wartość indeksu o domyślną wielkość
Grafika żółwia 3D Przykład Niech będzie dany następujący L-system rysujący formę krzaczastą. ω: -(90)F p: (0.5)FF[c+F]F[-F] p: (0.5)FF[c&F]F[^F] Wówczas pierwsze przepisania będą miały postać: 1: -(90)F[c+F]F[-F] 2: -(90)F[c&F]F[^F][c+F[c+F]F[-F]]F[c+F]F[-F][-F[c+F]F[-F]]
Grafika żółwia 3D Przykład Piąte przepisanie. Generowane programem LMUSe. version 9
Grafika żółwia 3D Definicja formalna Niech interpretacja grafiki żółwia będzie dana odwzorowaniem I:V*S ze zbioru V* słów nad alfabetem V w zbiór S, składający się z figur geometrycznych (zbioru punktów na płaszczyźnie lub w przestrzeni trójwymiarowej). Ponadto, niech T() reprezentuje zmiany w stanie żółwia (pozycja i orientacja) będące rezultatem interpretacji słowa V*. Wtedy dla rozkładu 12 słowa takiego 1, 2 że nie zawierają nawiasów kwadratowych, zachodzi równanie: I(12 )=I(1)I(2)T(1) .
Grafika żółwia 3D Definicja formalna Interpretacja grafiki żółwia słowa =12 jest formą (zbiorem punktów w dwu lub trzech wymiarach) równą sumie: interpretacji grafiki żółwia słowa 1 i interpretacji grafiki żółwia słowa 2, zastąpionego przez transformację T(1) ,będącej rezultatem interpretacji słowa 1
Gramatyki kontekstowe
Definicja – IL-systemy IL-system definiuje się jako uporządkowaną trójkę . gdzie: V – to alfabet systemu, ω V+, to niepuste słowo zwane aksjomatem, P V V* jest skończonym zbiorem produkcji (inaczej zbiorem reguł).
Produkcję (al,ap,a,)P oznacza się jako al < a > ap , gdzie: al to lewy kontekst, a – poprzednik, ap - prawy kontekst zaś to następnik. Jeśli nie ma zdefiniowanej żadnej produkcji dla danego poprzednika a V to wtedy przyjmuje się, że istnieje produkcja identyczności aa należąca do zbioru produkcji P.
Jeżeli IL-system posiada tylko jeden kontekst to możliwe są dwa rodzaje produkcji: al < a - z lewym kontekstem, a > ap - z prawym kontekstem. Sposób wyprowadzania sekwencji z produkcji wygląda tak samo jak w przypadku DOL-systemów z tym, że teraz uwzględnia się odpowiednią liczbę kontekstów.
IL-system – Przykład 1 Niech dany będzie 1L-system generujący dźwięki, , gdzie: V ={a,c,d,e,f,g,h}, ω: c g f c p1: c > g ca p2: f < c ac p3 : c < a e Efekt przepisań: ω: c g f c 1: c a g f a c 2: c e g f a c
IL-system – Przykład 2 Niech dany będzie 2L-system generujący dźwięki gdzie: V ={a1,a2,c1,c2,d1,d2,e1,e2,f1,f2,g1,g2,h1,h2}, ω= c1 d1 e1 f1 g1 a1 h1 p1: c1 <d1> e1 c2 p2: f1 <g1 > a1 f2 p3 : c1 c2 < e1> f1 h1 Efekt przepisań: ω: c1 d1 e1 f1 g1 a1 h1 1: c1 c2 e1 f1 f2 a1 h1 2: c1 c2 h1 f1 f2 a1 h1
Literatura H.-O. Peitgen, H. J¨urgens, D. Saupe Granice Chaosu Fraktale cz.2, Wydawnictwa Naukowe PWN, Warszawa 1996; A. Lindenmayer, P. Prusinkiewicz, The Algorithmic Beauty of Plants”, Springer-Verlag, Elektroniczna wersja opublikowana w 2004
Literatura Prusinkiewicz P. (2004a) Self-Similarity In Plants: Integrating Mathematical And Biological Perspectives, w: Thinking in Patterns. Fractals and Related Phenomena in Nature, pod redakcją M. Novak, World Scientific, Singapore, strony 103-118. http://algorithmicbotany.org/papers/fractals.tip2004.pdf
Literatura Martyn T. (1996), Fraktale i obiektowe algorytmy ich wizualizacji, Nakom, Poznań.