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