You are hereL-Systemy: żółw rysuje rośliny
Wybierz język interfejsu programu: Systemy Lindemayera, lub krócej – L-systemy, znajdują coraz większe zastosowanie w grafice komputerowej, szczególnie w generowaniu fraktali i modelowaniu roślin. L-system przydają się także w tworzeniu artystycznych form kultury Wschodnich Indii, czy algorytmów do komponowania muzyki na podstawie form graficznych. L-systemy wykorzystują tzw. produkcje – reguły reprezentowane w postaci łańcuchów o określonych znakach. Produkcje definiują struktury graficzne. Rozpatrzmy łańcuch złożony z dwóch liter a i b, które mogą pojawiać się w łańcuchu wiele razy). Dla każdej litery określmy regułę przepisywania. Reguła a: ab oznacza, że litera a ma być zastąpiona sekwencją ab. Reguła b: a oznacz, że litera b ma zostać zastąpiona literą a. Proces przetwarzania reguł rozpoczyna się od wyróżnionego łańcucha zwanego aksjomatem. Niech aksjomatem w naszym przykładzie będzie pojedyncza litera b. W pierwszym kroku aksjomat b jest zastępowany przez literę a produkcją b: a. W kroku następnym a jest zastępowana przez łańcuch ab zgodnie z produkcją a: ab. Słowo ab składa się z dwóch liter. Obie litery są jednocześnie zastępowane w kolejnym kroku przetwarzania: a jest zastępowane ciągiem ab, zaś b pojedynczą literą a – tak powstaje łańcuch aba. W podobny sposób (jednoczesnej wymiany wszystkich liter w otrzymywanym ciągu) z łańcucha aba powstaje łańcuch abaab, który generuje łańcuch abaababa. Z tego ostatniego możemy wywieść ciąg abaababaabaab itd. Rys. 1. Wiele fraktali to zwykła sekwencja prostych elementów – odcinków na płaszczyźnie. Długość takich odcinków i kąty jakie ze sobą tworzą mają znaczenie. Żeby generować fraktale, łańcuchy reprezentowane przez L-systemy, muszą zawierać niezbędne informacje dot. grafiki. Język LOGO i grafika żółwiowa pomagają w prosty sposób definiować struktury graficzne. W tym celu musimy określić przyrost kąta, o jaki będzie obracał się żółw. Rozmiar kroku określa długość pojedynczego odcinka. Żeby można było rysować dowolne struktury, żółw powinien reagować na następujące symbole: F zrób krok w przód o długości d f zrób krok w przód o długości d nic nie rysując + obróć się o określony kąt w prawo - obróć się określony kąt w lewo [ wrzuć bieżący stan na stos. Zapamiętaj pozycję żółwia, kolor, grubość rysowanej linii itp. ] bieżącym stanem staje się stan pobrany ze szczytu stosu. Żółw nie rysuje przy tym żadnych linii, choć w jego pozycja może zmienić się. Każdy inny symbol jest ignorowany przez żółwia. Poniższy L-system generuje tzw. Kwadratową wyspę Kocha. F+F+F+F F: F+F-F-FF+F+F-F W pierwszym kroku powyższy L-system wygeneruje kwadrat. Im więcej kroków wykonanych przez żółwia, tym bardziej złożona jest generowana struktura. Przy użyciu symboli operowania na stosie: [ oraz ] możemy konstruować struktury podobne do rzeczywistych roślin. Poszczególne produkcje takich L-systemów mają za zadanie tworzyć korzeń, gałęzie i liście. Poczytaj teraz, jak działają L-systemy w trzech wymiarach!
|