Algorytmy stochastyczne, wykład 07 Parametryczne systemy Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2014-04-03
polecenia mogą przyjmować argumenty np: F (10) naprzód o 10 kroków f (x) naprzód o x kroków bez rysowania linii (45) obrót w prawo o 45 stopni
Przykłady A(x, y) B(y p)a(x 1, y)a(x, y 1) uwaga: symbole +, -, / stają się przeciążone i mogą oznaczać obrót lub działanie zależnie od konktekstu w implementacji bezpieczniej będzie zmienić oznaczenia obrotów
Przykłady System z warunkami A(x) : x => 3 B(1)A(x 1)A(x 1) A(x) : x < 3 C Produkcje mogą być zależne od argumentu(ów)
Po co? rozszerzenie funkcjonalności modelowanie zmieniającej się wielkości elementy programowania w opisie systemów
Dodatkowe instrukcje! zmiana grubości kreski (zwykle zmniejszenie), uwaga grubość powinna być zapisywana i odczytywana ze stosu podczas operacji [ oraz ] $ zorientuj żółwia pionowo do góry zmiana koloru na następny w palecie (kora, liść, kwiaty)
Przepis na drzwo: łodyga rozgałęzienie (dwie odnogi z jednej łodygi) zmniejszenie grubości łodygi zmniejszenie długości łodygi (jednej lub obu)
L-System Drzewo 1
Przykład Drzewo z jednym stożkiem wzrostu aksjomat s : A(1, 10) Produkcje: A(l, w) :!(w)f (l)[&(a 0 )B(l r 2, w w r )]/(d)a(l r 1, w w r ) B(l, w) :!(w)f (l)[ (a 2 )$C(l r 2, w w r )]C(l r 1, w w r ) C(l, w) :!(w)f (l)[+(a 2 )$B(l r 2, w w r )]B(l r 1, w w r ) r 1, r 2, w r, a 0, a 2, d stałe
L-System Drzewo 1
Przykład Do parametrów można dodać mały szum Parametryczny LS można uzyć do iterowania offsetu: A(L, W ) : l > 5 F (y)a(l 1, W ) A(L, W ) : l <= 4 F (x)[+a(l 1, W 0.8)][ A(L 1, W 0.9)] można wydłużyć łodygę przed pierwszymi rozgałęzieniami Inny pomysł: można zablokować liczbę rekurencyjnych rozgałęzień
Przykład Drzewo z rozwijające się w dwóch gałęziach aksjomat s : A(1, 10) Produkcje: A(l, w) :!(w)f (l)[&(a 1 )B(l r 1, w w r )]/(180)[&(a 2 )B(l r 2, w w r )] B(l, w) :!(w)f (l)[+(a 1 )$B(l r 1, w w r )][ (a 2 )$B(l r 2, w w r )] r 1, r 2, w r, a 0, a 2 stałe
L-System Drzewo 2 Jarosław Piersa WSN 2013/2014 Wykład 07
Przykład Drzewo z trzeba odnogami z łodygi aksjomat s :!(1)F (200)/(45)A Produkcje: A :!(v r )F (50)[&(a)F (50)A]/(d 1 )[&(a)f (50)A]/(d 2 )[&(a)f (50)A] F (l) : F (l l r )!(w) :!(w v r ) l r, v r, a, d 1, d 2 stałe
L-System Drzewo 3
Zig-zag Łodyga w kształcie zygzaka
Zig-zag Łodyga w kształcie zygzaka A(α, l) F (l)[f (l 0.5)P(l)] + (α)a( α, l 0.9)
Spiralne Łodyga w kształcie spirali
Spirala Łodyga w kształcie spirali A(α, l) F (l)[f (l 0.5)P(l)][+(π/2)L(l)] + (α)a(α, l 0.9)
Podwójne Łodyga w kształcie rozgałęziona
Podwójna Rozgałęzienie A(α, l) F (l)[f (l 0.5)P(l)][+(π/2)L(l)][ (π/2)l(l)][+(α)f (l 0.9)A(α, l 0.9)][ (α)f (l 0.9)A(α, l 0.9)]
Zigzag Wykorzystanie: zigzag
Łodyga Zygzag A(α, l, d) : d = 0 F (l) A(α, l, d) : d >= 1 F (l)[+(α)zigzag(d)]a( α, l 0.9, d 1)
Spiralna Roślina: spiralna
Zigzag Kwiaty rozgałęzione
Razem Drzewo wraz z pędami Jarosław Piersa WSN 2013/2014 Wykład 07
Ciekawostka: neuron w PovRay
Źródła P. Prosiunkiewicz, A. Liendenmayer, The algorithmic beaty of plants
Algorytm Fraktal kwadraty i diamenty Dane: wysokość i szerokość obszaru wielkości 2 n, dla n N zadana wartość na rogach obszaru (0, 0), (2 n, 0), (0, 2 n ), (2 n, 2 n ) Wynik: mapa wysokości dla każdego punktu
Algorytm Fraktal kwadraty i diamenty dane: s x, k x, s y, k y startowe i końcowe indeksy dla x i y jeżeli s x + 1 = k x, to zakończ (równoważnie zachodzi: s y + 1 = k y ) przypisz środkowy x m x := przypisz środkowy y m y := sx +kx 2 sy +ky 2 ustal wartość dla środkowego punktu T [m x, m y ] := T [sx,sy ]+T [kx,sy ]+T [sx,ky ]+T [kx,ky ] 4 + N(0, σ 2 ) ustal wartość dla środków na brzegach (kont.)
Algorytm Fraktal kwadraty i diamenty ustal wartość dla środków na brzegach T [sx,sy ]+T [sx,ky ] T [s x, m y ] := 2 + N(0, σ 2 ) T [kx,sy ]+T [kx,ky ] T [k x, m y ] := 2 + N(0, σ 2 ) T [sx,sy ]+T [kx,sy ] T [m x, s y ] := 2 + N(0, σ 2 ) T [sx,ky ]+T [kx,ky ] T [m x, k y ] := 2 + N(0, σ 2 ) wywołaj rekurencyjnie algorytm dla powstałych czterech mniejszych podobszarów
Przykłady Fraktal kwadraty i diamenty 10 8 20 6 4 15 2 10 5 0-5 0 10 20 30 40 50 60 70 60 50 40 30 20 10 70 0 0-2 -470 60 50 40 30 20 10 00 10 20 30 40 50 60 70
Po pokolorowaniu i oświetleniu Fraktal kwadraty i diamenty
Niebo i chmury Fraktal kwadraty i diamenty Mapa pokolorowana: biały niebieski
Plazma click Fraktal kwadraty i diamenty