Algorytmy stochastyczne, wyklad 06 Systemy Liendenmayera w R3

Transkrypt

Algorytmy stochastyczne, wyklad 06 Systemy Liendenmayera w R3
Grafika żółwiowa w R3
Kontekstowe LS
Algorytmy stochastyczne, wykład 06
Systemy Liendenmayera w R3
Jarosław Piersa
Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika
2014-03-27
Jarosław Piersa
WSN 2013/2014 Wykład 06
Grafika żółwiowa w R3
Kontekstowe LS
1
Grafika żółwiowa w R3
Opis
Instrukcje
2
Kontekstowe LS
Kontekstowe LS
Jarosław Piersa
Opis
Instrukcje
WSN 2013/2014 Wykład 06
Grafika żółwiowa w R3
Kontekstowe LS
Opis
Instrukcje
Latający żółw
pozycja Żółwia x, y , z,
orientacja żółwia: vh , vu , vl ∈ R3
vh — wektor (jednostkowy) opisujący kierunek głowy żółwia
(gdzie żółw patrzy)
vl — wektor opisujący kierunek lewej ręki żółwia
vu — wektor opisujący kierunek ”do góry”
tablica wektorów:
O=
Jarosław Piersa
vhtr
vltr
vutr
WSN 2013/2014 Wykład 06
Grafika żółwiowa w R3
Kontekstowe LS
Opis
Instrukcje
Latający żółw
pozycja: x, y , z,
orientacja żółwia:
vh , vu , vl ∈ R3
vh — głowa żółwia
vl — lewa żółwia
vu — góra
orientacja:
O = vhtr
vltr
vutr
Jarosław Piersa
WSN 2013/2014 Wykład 06
Grafika żółwiowa w R3
Kontekstowe LS
Opis
Instrukcje
Latający żółw
instrukcja F — do przedu o s kroków rysując kreskę,
pozycja przed: (x, y , z)
pozycja po: (x 0 , y 0 , z 0 ) := (x, y , z) + s · vh
Jarosław Piersa
WSN 2013/2014 Wykład 06
Grafika żółwiowa w R3
Kontekstowe LS
Opis
Instrukcje
Obrót w lewo / prawo(yaw)
instrukcja + – — obrót o
kąt ±α,
macierz obrotu:


cos α sin α 0
RU =  − sin α cos α 0 
0
0
1
O 0 = O · RU
Jarosław Piersa
WSN 2013/2014 Wykład 06
Grafika żółwiowa w R3
Kontekstowe LS
Opis
Instrukcje
Wznoszenie i opadanie (pitch)
instrukcja ˆ& — obrót o kąt
±α
macierz obrotu:


cos α 0 sin α
0
1
0 
RL = 
− sin α 0 cos α
O 0 = O · RL
Jarosław Piersa
WSN 2013/2014 Wykład 06
Grafika żółwiowa w R3
Kontekstowe LS
Opis
Instrukcje
Obrót wokół nosa (roll)
instrukcja / \ — obrót o
kąt ±α (beczka)
macierz obrotu:
macierz obrotu:


cos α sin α 0
RU =  − sin α cos α 0 
0
0
1
O 0 = O · RU
O 0 = O · RH
Jarosław Piersa
WSN 2013/2014 Wykład 06
Grafika żółwiowa w R3
Kontekstowe LS
Opis
Instrukcje
W tył zwrot
instrukcja | — obrót o π wokół osi up
macierz obrotu:

−1 0
0

RU =  0 −1
0
0 +1

O 0 = O · RH
Jarosław Piersa
WSN 2013/2014 Wykład 06
Grafika żółwiowa w R3
Kontekstowe LS
Opis
Instrukcje
Przykład

A → [&FLA]/////[&FLA]//////[&FLA]



F → S////F
P=
S → FL



L → O % generuj liść
α = π · 22.5/180
Jarosław Piersa
WSN 2013/2014 Wykład 06
Grafika żółwiowa w R3
Kontekstowe LS
Kontekstowe LS
Kontekstowe LS
dopuszczamy zastępowanie symbolu znalezionego w kontekście
< — lewy kontekst
> — prawy kontekst
<> — obustronny kontekst
Jarosław Piersa
WSN 2013/2014 Wykład 06
Grafika żółwiowa w R3
Kontekstowe LS
Kontekstowe LS
Kontekstowe LS
dopuszczamy zastępowanie symbolu znalezionego w kontekście
lewy kontekst: abc < x → de
„w napisie abcx zastap x przez de”
prawy kontekst: x > fgh → ij
„w napisie xfgh zastap x przez ij”
Jarosław Piersa
WSN 2013/2014 Wykład 06
Grafika żółwiowa w R3
Kontekstowe LS
Kontekstowe LS
Kontekstowe LS
dwustronny kontekst:
abc < x > de → gh
„w napisie abcxde zastap x przez gh”
Jarosław Piersa
WSN 2013/2014 Wykład 06
Grafika żółwiowa w R3
Kontekstowe LS
Kontekstowe LS
Kontekstowe LS
Uwaga 1. Konteksty mogą ignorować pewne symbole (np: +−)
Uwaga 2. wzorzec może być rozdzielony rozgałęzieniem, ale
powinien być wychwycony
np: a < x > c → y
stosuje się do x w napisie bcax[bb]c ponieważ instukcja ]
„resetuje” ciąg!
Jarosław Piersa
WSN 2013/2014 Wykład 06