MWS_2021_s439489/Treść zadań/L-System-2.html

128 lines
11 KiB
HTML
Raw Normal View History

2021-03-27 20:54:15 +01:00
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>L-System-2</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
</style>
<link rel="stylesheet" href="style.css" />
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js" type="text/javascript"></script>
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h1 id="filotaksja-ulistnienie">Filotaksja (Ulistnienie)</h1>
<p>Regularne ułożenie bocznych (lateralnych) elementów roślin (liści, gałęzi, płatków kwiatów, kolce na róży itd) jest istotnym aspektem kształtu rośliny, znaną jako filotaksja. Jest to zagadnienie dogłębnie badane przez biologów jak i matematyków. W trakcie zajęć skupimy się na dwóch modelach, pozwalających na otrzymanie realistycznych obrazów kwiatów i owoców, w których pojawia się spirala filotaktyzna.</p>
<p>Pierwszy z nich opisuje rozmieszczenie na płaszczyźnie, został pierwszy raz wykorzystany przez Vogela do opisu struktury słonecznika. Natomiast drugi redukuje filotakcję do upakowania na cylindrze.</p>
<h2 id="model-planarny">Model planarny</h2>
<p>Do opisu wzorców w słoneczniku Vogel zaproponował następujące reguły</p>
<p><span class="math display">\[ \phi = n * 137.5^\circ ,\quad r=c\sqrt{n}\]</span></p>
<p>gdzie:</p>
<ul>
<li><span class="math inline">\(n\)</span> to indeks elementu kwiatu,</li>
<li><span class="math inline">\(\phi\)</span> to kąt między między ustalonym kierunkiem odniesienia a kierunkiem od centrum do danego elementu, gwarantuje, że kąt między dwoma kolejnymi elementami był 137.5 stopni. Można też o tym myśleć jak o kącie we współrzędnych kierunkowych,</li>
<li><span class="math inline">\(r\)</span> to promień - odległość od centrum,</li>
<li><span class="math inline">\(c\)</span> - ustalona stała.</li>
</ul>
<p>Efekt wygląda następująco: <img src="Vogel.jpg" alt="Vogel" /></p>
<h3 id="zadanie">Zadanie</h3>
<p>Zaproponuj L-System, który opisze poniższy model (będzie przypominał poniższy obrazek), możesz skorzystać ze znaków <code>+(a)</code>, który obraca o kąt <code>a</code>, <code>f(w)</code> który przesuwa o <code>w</code> do przodu oraz <code>S</code>, który rysuje sferę. Wyświetl go za pomocą sceny <strong>LSystem3D</strong>.</p>
<blockquote>
<p>Podpowiedź: wszystkie elementy mogą być dzieckiem jednego głównego znaku odpowiadającego za centrum</p>
</blockquote>
<p>w otrzymanym wzorcu możemy zaobserwować 2 spirale, jedna obraca się zgodnie z ruchem wskazówek zegara, druga w przeciwną (znajdują się na rysunku poniżej ) znane też jako parastichy. Okazuje się,że liczba ramion w jednej i drugiej spirali jest zawsze równa dwóm kolejnym liczbom fibonacciego.</p>
<p><img src="parastichy1.jpg" alt="parastichy" /> <img src="parastichy2.jpg" alt="parastichy" /></p>
<h3 id="zadanie-1">Zadanie</h3>
<p>Zmień kąt <span class="math inline">\(\phi\)</span> kolejno na 137.4 i 137.6 stopni jaką różnicę zauważasz?</p>
<h3 id="modelowanie-słonecznika">Modelowanie słonecznika</h3>
<p><img src="sunflower1.jpg" alt="słonecznik" /> <img src="sunflower2.jpg" alt="słonecznik" /> Oczywiście sama spirala, chociaż oddaje wzór filotaksji, to nie przypomina za bardzo słonecznika. Słoneczniki mają kwiatostan typu koszyczek, to znaczy duży kwiatostan widoczny widoczny na zdjęciu składa się tak na prawdę z wielu małych kwiatów. Od zewnątrz mamy kwiaty języczkowe, to te, które kończą się dużymi płatkami, wewnątrz są drobniejsze kwiaty rurkowe. Kwiaty zaczynają swój żywot w środku kwiatostanu, następnie są “spychane” na zewnątrz, dlatego możemy zaobserwować, że w środku są zielone świeże pąki, które żółkną im dalej są od środka, żeby następnie przejść w otwarte kwiaty.</p>
<p>By oddać ten efekt wystarczy dla większych wartości N wziąć różne obiekty, by zwiększyć realizm można też dodać także wygięcie widoczne na drugim obrazku</p>
<h3 id="zadanie-2">Zadanie</h3>
<p>Zmodyfikuj L-System i definicję żółwia z poprzedniego zadania tak, żeby otrzymać słonecznik. skorzystaj z modeli, które znajdują się w folderze Models/Sunflower. Przyjmij liczbę kroków koło 650.</p>
<p>Zmodyfikuj koszyk tak by był trochę wypukły, jak na drugim zdjęciu.</p>
<h2 id="zadanie-domowe">Zadanie domowe</h2>
<p>Napisz L-System i interpretację, która zamodeluje kwiat róży, zrób w wybranym programie graficznym lub znajdź kilka wariantów płatków, które wykorzystasz do reprezentowania różnych etapów rozwoju. `</p>
<h2 id="filotaksja-liści">Filotaksja Liści</h2>
<p>Przez filotaksję rozumiemy także rozmieszczenie liści na łodydze. Wyróżniane są różne typy filotaksji, część z nich jest pokazana na poniższym obrazku.</p>
<figure>
<img src="phyllotaxy_leaf.png" alt="rose" /><figcaption aria-hidden="true">rose</figcaption>
</figure>
<h1 id="l-systemy-kontekstowe">L-Systemy Kontekstowe</h1>
<p>Dotychczasowe L-Systemy były systemami bezkontaktowymi, to znaczy reguły produkcyjne zależały wyłącznie od przepisywanego znaku. Jednak w modelowaniu procesów biologicznych przydatne będzie, żeby organy rośliny komunikowały się między sobą. W tym celu wykorzystamy L-Systemy kontekstowe.</p>
<p>Kontekst oznaczamy poprzez znaki <code>&lt;</code> i <code>&gt;</code>, gdzie <code>A &lt; B</code> oznacza, że przepisany będzie <code>B</code>, jeżeli jego poprzednikiem jest <code>A</code>. Natomiast <code>C &gt; D</code> oznacza, że przepisany zostanie <code>C</code> jeżeli jego następnikiem jest <code>D</code>.</p>
<p>Przykładowo poniższy L-System prezentuje przekazywanie sygnału od lewej do prawej</p>
<pre><code>#axiom
BAAAAAAAA
#rules
B&lt;A -&gt; B
B -&gt; A
#end rules</code></pre>
<p>Kolejne kroki będą wyglądać następująco</p>
<pre><code>ABAAAAAAA
AABAAAAAA
AAABAAAAA
...
AAAAAAAAB
AAAAAAAAA</code></pre>
<p>Możesz to zobaczyć w scenie <code>Context</code>, ładując L-System <code>Context1.txt</code>.</p>
<p>Powyższy L-System nie jest specjalnie użyteczny, sygnał pochodzi znikąd i idzie donikąd. Można go z łatwością rozbudować tak, żeby po lewej był odbiornik, po prawej i przekaźnik po lewej.</p>
<pre><code>#axiom
C(5,5)AAAAAAAAD(0)
#rules
C(a,b) &gt; A : b&lt;5 -&gt; C(a,b+1)
C(a,b) &gt; A : b&gt;=5 -&gt; C(a-1,0)
C(a,b) &lt; A : b&gt;=5 -&gt; B
B&lt;D(a) -&gt; D(a+1)
B&lt;A -&gt; B
B -&gt; A
#end rules</code></pre>
<p>Ten L-System znajduje się w <code>Context2.txt</code>. Zauważ jak obiekt po prawej rośnie a po lewej się kurczy wraz z przesyłaną informacją. Można w ten sposób przekazywać informację pomiędzy organami rośliny. Poniższy obrazek prezentuje jak sygnał może być propagowany w dół (akropetalnie) i w górę (basipetalnie).</p>
<figure>
<img src="signal_propagation.jpg" alt="propagacja" /><figcaption aria-hidden="true">propagacja</figcaption>
</figure>
<p>Propagacja sygnału jest jednym z narzędzi do wprowadzenia samoorganizacji w modelu rośliny, poprzez uzależnienie od siły sygnąłu siły decyzji jak dany organ ma się dalej zachować.</p>
<p>W dotychczasowych L-Systemach pojawiały symbole, które nie są częścią struktury rośliny, jedynie odpowiadają za geometrię (takie jak <code>+</code> albo <code>-</code>). Będą one przeszkadzać w komunikacji poprzez kontekst, w tym celu należy użyć słowa kluczowego <code>#ignore</code>, które mówi, żeby pominąć znaki które są wymienione po nim. Muszą one być wymienione w teh samej linii po spacji. Przykładowo zmodyfikowany powyższego LSystemu z dodanymi zgięciami. Będzie on działał dokładnie tak samo.</p>
<pre><code>#ignore + -
#axiom
C(5,5)A+A+AA-A-AA-AD(0)
#rules
C(a,b) &gt; A : b&lt;5 -&gt; C(a,b+1)
C(a,b) &gt; A : b&gt;=5 -&gt; C(a-1,0)
B(1)&lt;D(a) -&gt; D(a+1)
B(a)&lt;A -&gt; B(a)
B(a) -&gt; A
#end rules</code></pre>
<h3 id="zadanie-3">Zadanie</h3>
<p>Bazując na L-Systemie powyżej napisz L-System, który będzie przekazywał w L-Systemie sygnał z korzenia do zalążków. W zależności od rodzaju sygnału powinien sie pojawić kwiat, liść lub nowe rozgałęzienie. To jakie sygnały wysyła może być losowe.</p>
<h2 id="zadanie-domowe-1">Zadanie domowe</h2>
<p>Wykorzystaj Pozyskaną wiedzę na temat filotaksji i propagacji informacji w L-Systemach do stworzenia modelu rozwoju róży. Użyj propagacji do sterowania wzrostem rośliny zgodnie ze schematem, jako kwiaty użyj wyników modelu z poprzedniego zadania (nie musisz wizualizować ich rozwijania się, wystarczy, że będą się pojawiać i znikać)</p>
<h3 id="schemat-rozwoju-róży">Schemat rozwoju róży</h3>
<p>Róża składa się z <strong>łodyg</strong>, <strong>kwiatów</strong> i <strong>liści</strong>. Częścią, która rośnie jest jest czubek łodygi, który będziemy nazywać <strong>wierzchołkiem</strong>.</p>
<p>Liście wyrastają bezpośrednio z łodygi, w filotaksji spiralnej. Każdy liść składa się z nieparzystej liczby liści rosnących na przeciwlegle.</p>
<p><img src="Rose\3.jpg" alt="rose" /> <img src="Rose\2.jpg" alt="rose" /></p>
<p>Cykl rozwoju róży podzielimy na 4 etapy wzorowane na porach roku.</p>
<h4 id="wiosna">Wiosna</h4>
<p>W miejscu starych liści pojawiają się <strong>zalążki</strong> nowych liści, w tym etapie każdy z nich ma szansę stać się <strong>wierzchołkiem</strong> nowej łodygi. Istniejące <strong>wierzchołki</strong> rosną i wytwarzają nowe zalążki liści.</p>
<h4 id="lato">Lato</h4>
<p>Obecne <strong>wierzchołki</strong> kontynuują swój wzrost. Na tym etapie nowe łodygi mogą wyrosnąć tylko z nowych <strong>zalążków</strong>, które pojawiają się w wyniku rozwoju łodyg, ale szansa na ich pojawienie jest większa. W trakcie tego etapu <strong>wierzchołek</strong> może zmienić się w <strong>kwiat</strong>.</p>
<h3 id="jesień">Jesień</h3>
<p>Wzrost rośliny się zatrzymuje, kwiaty zamieniają się w owoce, nie powstają nowe liście ani zalążki.</p>
<h3 id="zima">Zima</h3>
<p>Roślina czeka na nową wiosnę, powstałe owoce są obrywane przez okoliczne zwierzęta szukające pożywienia. Pojedyńcze elementy łodygi mogą zostać uśpione lub uszkodzone i w niektórych miejscach nie wyrosną nowe liście lub wierzchołek przestanie funkcjonować.</p>
<hr />
<p>Poniżej znajduje się symboliczna reprezentacja zasad</p>
<figure>
<img src="Rose\rose_diagram.png" alt="rose" /><figcaption aria-hidden="true">rose</figcaption>
</figure>
</body>
</html>