Języki formalne i automaty Ćwiczenia 5

Podobne dokumenty
Języki formalne i automaty Ćwiczenia 4

Języki formalne i automaty Ćwiczenia 3

Języki formalne i automaty Ćwiczenia 7

Języki formalne i automaty Ćwiczenia 2

CorelDraw - wbudowane obiekty wektorowe - prostokąty Rysowanie prostokątów

Języki formalne i automaty Ćwiczenia 9

Języki formalne i automaty Ćwiczenia 6

Języki formalne i automaty Ćwiczenia 1

CorelDraw - podstawowe operacje na obiektach graficznych

4. Rysowanie krzywych

Logo Komeniusz. Gimnazjum w Tęgoborzy. Mgr Zofia Czech

Maskowanie i selekcja

Rysunek map AutoCada jako narzędzie do rysowania mapy

Grafika Komputerowa Materiały Laboratoryjne

Języki formalne i automaty Ćwiczenia 8

Ćwiczenie nr 1. Kliknij myszką w trójkąt, aby otrzymać dostęp do uchwytów obrotów:

Opis implementacji: Poznanie zasad tworzenia programów komputerowych za pomocą instrukcji języka programowania.

narzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania.

Ćwiczenie 6 Animacja trójwymiarowa

Politechnika Warszawska Wydział Mechatroniki Instytut Automatyki i Robotyki

Przedmiotowy Konkurs Informatyczny LOGIA powołany przez Mazowieckiego Kuratora Oświaty

Zadanie 1. Czy prawdziwa jest następująca implikacja? Jeśli L A jest językiem regularnym, to regularnym językiem jest też. A = (A, Q, q I, F, δ)

Obliczenia inspirowane Naturą

Simba 3D LOGO. Cele zajęć: - Poznanie zasad i sposobów tworzenia procedur z parametrami. - Poznanie zasad wywoływania procedur z parametrami.

Obliczenia iteracyjne

Symbole mapy numerycznej jako bloki rysunkowe. Elżbieta Lewandowicz Katedra Geodezji Szczególowej

Rys. 1. Rozpoczynamy rysunek pojedynczej części

Przekształcenia geometryczne. Dorota Smorawa

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Następnie zdefiniujemy utworzony szkic jako blok, wybieramy zatem jak poniżej

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Symbole graficzne. 1. Rezystor Rysujemy symbol graficzny rezystora

Krzysztof Sendor Słowa kluczowe Meble kuchenne w Intericad. Otwieramy moduł kuchenny korzystając z menu: Moduł kuchenny/pokaż Bibliotekę

Animacje z zastosowaniem suwaka i przycisku

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

WASM AppInventor Lab 3. Rysowanie i animacja po kanwie PODSTAWY PRACY Z KANWAMI

L-systemy Lindemayera w 3D. Gramatyki grafowe


Formularz II osłony na kaloryfery pod indywidualny wymiar nowy typ kaloryfera

INSTYTUT INFORMATYKI STOSOWANEJ MODELOWANIE CZĘŚCI Z WYKORZYSTANIEM PROGRAMU SOLID EDGE

Odwrotna Notacja Polska

Pokrywka. Rysunek 1. Projekt - wynik końcowy. Rysunek 2. Pierwsza linia łamana szkicu

WYKŁAD 3 WYPEŁNIANIE OBSZARÓW. Plan wykładu: 1. Wypełnianie wieloboku

WIELOKĄTY FOREMNE I ICH PRZEKĄTNE

Przekształcanie wykresów.

Menu Narzędzia w Edytorze symboli i Edytorze Widoku aparatów

Formularz I osłony na kaloryfery pod indywidualny wymiar stary typ kaloryfera

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Podstawowe komendy. Ćwiczenie 1

Ćwiczenie 1 Automatyczna animacja ruchu

Rys 3-1. Rysunek wałka

Matematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń

Ćwiczenie 3. I. Wymiarowanie

1. Skopiować naswój komputer: (tymczasowy adres)

Rysunek 1: Okno timeline wykorzystywane do tworzenia animacji.

BLENDER- Laboratorium 1 opracował Michał Zakrzewski, 2014 r. Interfejs i poruszanie się po programie oraz podstawy edycji bryły

Matematyczne Podstawy Informatyki

Definiowanie procedur z parametrami w Logo Komeniuszu.

TRYGONOMETRIA FUNKCJE TRYGONOMETRYCZNE KĄTA SKIEROWANEGO

TEMAT: PRZEKSZTAŁCENIA WYKRESÓW FUNKCJI PRZESUNIĘCIE O WEKTOR

Ćwiczenie 14 Dmuchawce

Ćwiczenie dodatkowe - Wybrane narzędzia modelowania Zadanie Przygotować model stołu z krzesłami jak na rysunku poniżej(rys. 1).

Nadają się do automatycznego rysowania powierzchni, ponieważ może ich być dowolna ilość.

Instrukcja korzystania z aplikacji mobilnej DM TrackMan.

Cykl lekcji informatyki w klasie IV szkoły podstawowej. Wstęp

Modelowanie krawędziowe detalu typu wałek w szkicowniku EdgeCAM 2009R1

INSTRUKCJE DO ARKUSZA KALKULACYJNEGO Excel 2003

Zajęcia z aplikacją ScratchJr mogą zostać przeprowadzone na dwa sposoby:

LOGO KOMENIUSZ PODSTAWOWE KOMENDY W LOGO KOMENIUSZ:

Wstawianie nowej strony

Systemy Lindenmayera (L-systemy)

Ćwiczenie 1: Pierwsze kroki

RYSUNEK TECHNICZNY I GEOMETRIA WYKREŚLNA INSTRUKCJA DOM Z DRABINĄ I KOMINEM W 2D

Użycie przestrzeni papieru i odnośników - ćwiczenie

Metody Kompilacji Wykład 3

TWORZENIE OBIEKTÓW GRAFICZNYCH

INTERAKTYWNA KOMUNIKACJA WIZUALNA. Systemy Lindenmayera (L-systemy)

Modelowanie roślin przy użyciu języków formalnych

Rys.1. Technika zestawiania części za pomocą polecenia WSTAWIAJĄCE (insert)

Multimedia i interfejsy. Ćwiczenie 5 HTML5

Języki, automaty i obliczenia

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

4.2. ELIPSA. 1. W linii statusowej włączamy siatkę i skok, które ułatwią rysowanie:

W tym ćwiczeniu zostanie wykonany prosty profil cienkościenny, jak na powyŝszym rysunku.

3.4. Opis konfiguracji layoutów.

Koło zębate wału. Kolejnym krokiem będzie rozrysowanie zębatego koła przeniesienia napędu na wał.

Tik Z wiadomości wstępne

Wstęp Pierwsze kroki Pierwszy rysunek Podstawowe obiekty Współrzędne punktów Oglądanie rysunku...

RYSUNEK TECHNICZNY I GEOMETRIA WYKREŚLNA INSTRUKCJA Projekt instalacji c.o.

Dia rysowanie diagramów

Projekt przykładowy pozwoli nabyć pewne doświadczenie W używaniu SEE Building LT.

Obsługa mapy przy użyciu narzędzi nawigacji

Turing i jego maszyny

Matematyczne Podstawy Informatyki

Arkusz strona zawierająca informacje. Dokumenty Excela są jakby skoroszytami podzielonymi na pojedyncze arkusze.

Nabycie umiejętności graficznych wymaga rozwoju umiejętności motorycznych, koordynacji wzrokowo-ruchowej i samoregulacji. NPDN PROTOTO - J.

4.2. ELIPSA. 1. W linii statusowej włączamy siatkę i skok, które ułatwią rysowanie:

Algorytmika i programowanie

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych

Transkrypt:

Języki formalne i automaty Ćwiczenia 5 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 L-systemy... 2 Grafika żółwia... 2 Bibliografia... 5 Zadania... 6 Zadania na 3.0... 6 Zadania na 4.0... 6 Zadania na 5.0... 6

Wstęp teoretyczny L-systemy L-systemy to pewne rodzaje gramatyk. Aksjomat to łańcuch startowy od którego zaczynamy wszelkie wyprowadzenia. W zwykłej gramatyce każde wyprowadzenie zaczynało się od symbolu startowego. Wyprowadzenie słów w L-systemie jest odmienne. To znaczy zaczynając od aksjomatu, w każdym kroku stosujemy wszystkie możliwe produkcje począwszy od lewej. Przykład: G gggf Zaczynamy wyprowadzenie od aksjomatu G: G gggf ggggfgggff gg gggf gggf fg gggf gggf ff... Jeśli w każdym kroku dokładnie wiemy, którą produkcję zastosować to L-system jest nazywany deterministycznym. Jeśli w jakimś kroku istnieje więcej niż jedna możliwość zastosowania produkcji i dla każdej z nich przyporządkowane jest prawdpodobieństwo wyboru danej produkcji to l-system nazywany jest stochastycznym. Będziemy używać na tych zajęciach L-systemów do generacji rysunków. Każdy symbol l-systemu będzie odpowiadał odpowiedniej operacji malowania. Do generacji rysunku z gramatyki będziemy używać grafiki żółwia. Każdy terminal odpowiada pewnej operacji żółwia. Grafika żółwia Żółw znajduje się w trójwymiarowym układzie współrzędnych. Żółw ma 3 atrybuty: pozycję, orientację, mazak, który ma takie atrybuty jak kolor, grubość, dół lub góra (dół oznacza, że mazak przykładany jest do papieru). Żółw porusza się po układzie za pomocą komend, które odnoszą do jego aktualnego położenia. Przykładowe komendy z programu JFLAP: terminal g - oznacza przesunięcie do góry + - oznacza obrót w prawo o wcześniej zdefiniowaną liczbę stopni Przykład 1. X gggx + g Aksjomatem jest X. Pierwsza iteracja: X gggx + g

Na rysunku będą 3 kreski do góry, + oznacza obrócenie się w prawo, i jedna kreska w prawy górny róg (Rysunek 1). Druga iteracja: X ggggggx + g + g Rysunek 1 Na rysunku będzie 6 kresek do góry, jedna kreska w bok i druga kreska w bok, ale pod większym kątem (Rysunek 2). itd. Przykład 2. X g [~+Yg]gX Y +Y Aksjomat: X. Pierwsza iteracja: Rysunek 2 X g [~+Yg]gX Nawiasy kwadratowe oznaczają stos. Najpierw renderowane są wszystkie symbol poza stosem, a na samym końcu stos. Stos jest renderowany począwszy od pozycji w której się znajdował. Zastosowanie stosu pozwala na robienie odgałęzień. Tylda oznacza zmniejszenie grubości linii. W pierwszej iteracji najpierw rysujemy kreskę do góry, później kolejną kreskę do góry. Następnie przetwarzamy stos. Zaczynając od pozycji po pierwszej kresce zmniejszamy grubość linii, obracamy żółwia w prawo i rysujemy kreskę (Rysunek 3).

Rysunek 3 Druga iteracja: g [~+Yg]gX g[~++yg]gg [~+Yg]gX W drugiej iteracji będą najpierw cztery kreski do góry, później będzie przetwarzany pierwszy stos, gdzie odchylamy się dwukrotnie w prawo i rysujemy kreskę. Na drugim stosie odchylamy się jednokrotnie w prawo i rysujemy kreskę (Rysunek 4). Przykład 3. Gramatyka postaci: B [~##TL-B++B] L [{-g++g%--g}] R!@@R T Tg Aksjomatem będzie w tym wypadku łańcuch: R ~##B Znaczenie symboli: Rysunek 4 % oznacza obrócenie żółwia w prawo o 180 stopni {} - nawiasy klamrowe oznaczają, że to co jest wewnątrz definiuje wierzchołki wielokąta, który będzie wypełniony. Pierwszym wierzchołkiem jest aktualne położenie. ## (pisane razem w JFLAP) oraz @@ (pisane razem w JFLAP): operatory zmieniające kolor wypełnienia wielokąta - obrócenie żółwia w lewo! - zwiększenie grubości linii Pierwsza iteracja:

R ~##B R~## [~##TL-B++B ] W pierwszej iteracji nie ma terminala g, a więc nic nie rysujemy. Druga iteracja: R ~ ## [ ~ ## T g [ { - g + + g % - - g } ] - [ ~ ## T L - B + + B ] + + [ ~ ## T L - B + + B ] ] W powyższej iteracji będzie namalowana kreska do góry, a później to co znajduje się w pierwszym stosie, czyli zdefiniowany wielokąt, który zostanie wypełniony (Rysunek 5). Rysunek 5 Dodatkowe komendy: f - przesuwanie bez rysowania +, -, &, ^, /, *- zestaw komend obracających żółwia w każdym wymiarze #, @ - zmieniają kolor linii Bibliografia 1. [Online] http://en.wikipedia.org/wiki/l-system. 2. [Online] http://www.jflap.org/tutorial/lsystem/index.html.

Zadania Proszę mieć na uwadze, że pomiędzy symbolami w JFLAP podczas wpisywania l-systemów powinny być spacje. Zadania na 3.0 Wymyślić lub znaleźć l-system, który generuje ciekawy rysunek wykorzystując do tego rysowanie kresek, obracanie w prawo i w lewo. Uruchomić go w JFLAP. Zadania na 4.0 Wymyślić lub znaleźć l-system, który generuje ciekawy rysunek wykorzystując do tego stos, dekrementację/inkrementację grubości linii oraz wypełnianie wielokątów. Uruchomić go w JFLAP. Zadania na 5.0 W pewnym L-systemie po kilku początkowych krokach otrzymujemy dwa złączone ze sobą okręgi, które w kolejnych krokach obracają się wokół punktu startowego. Kąt jest zdefiniowany na 10 stopni. Znaleźć ten l-system. Rysunek 6 Rysunek 7