forked from andkok/MWS_2021
cw1
This commit is contained in:
parent
cc44b568f3
commit
81c6814e16
BIN
7_Centaurea_cyanus.jpg
Normal file
BIN
7_Centaurea_cyanus.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 42 KiB |
BIN
Screenshot 2021-03-14 at 07.32.36.png
Normal file
BIN
Screenshot 2021-03-14 at 07.32.36.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 152 KiB |
BIN
Screenshot 2021-03-14 at 07.32.56.png
Normal file
BIN
Screenshot 2021-03-14 at 07.32.56.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 213 KiB |
BIN
Screenshot 2021-03-14 at 07.33.17.png
Normal file
BIN
Screenshot 2021-03-14 at 07.33.17.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 193 KiB |
File diff suppressed because one or more lines are too long
@ -288,3 +288,55 @@ Parametry zapisuje się wewnątrz nawiasów po przecinku. W aksjomacie muszą on
|
||||
### Zadanie
|
||||
|
||||
Napisz dla parametrycznej wersji Anabeny taką interpretację, żeby komórki rosły wraz z wiekiem.
|
||||
|
||||
## Stochastyczne L-Systemy
|
||||
|
||||
Niektóre procesy biologiczne są zbyt skomplikowane albo niedostatecznie zbadane, żeby można je było je zasymulować lub zwyczajnie nie mamy potrzeby symulować mechanizmów tak dokładnie. Zamiast tego możemy skorzystać z losowości, która przybliży zachowanie natury.
|
||||
|
||||
Przykładowo możemy losowo decydować czy w roślinie wyrośnie boczna gałąź czy nie. Co realizuje poniższy L-System (znajduje się on także w pliku `stochastic.txt`)
|
||||
|
||||
```
|
||||
#axiom
|
||||
B
|
||||
#rules
|
||||
B -> #stochastic
|
||||
p=3 FB
|
||||
p=1 [+FB]FB
|
||||
p=1 [-FB]FB
|
||||
p=1 F
|
||||
#stochastic end
|
||||
#rules end
|
||||
|
||||
```
|
||||
|
||||
W powyższym przypadku mamy symbol B, który symbolizuje merystem (część rośliny zdolną do rozwoju); F oznacza rozwiniętą gałąź. B może rozwinąć łodygę, wytworzyć gałąź po prawej, wytworzyć gałąź po lewej lub zaprzestać rozwój.
|
||||
|
||||
Odpal scenę `LSystem2D` załaduj `stochastic.txt` i odpal kilka razy od początku (żeby zresetować, kliknij *Load File*).
|
||||
|
||||
Reguły stochastyczne należy zacząć od słowa `#stochastic`. Następnie po linijce wypisać wyniki, poprzedzając je frazą `p=W`, gdzie `W` to waga danego wyniku. Wagi mogą być dowolną dodatnią liczbą rzeczywistą. Interpreter na podstawie wag przydzieli prawdopodobieństwo kolejnym wynikom. Przykładowo w powyższym L-Systemie reguły zostaną wykonane następująco:
|
||||
|
||||
* FB z prawdopodobieństwem $\frac{3}{6}$
|
||||
* [+FB]FB z prawdopodobieństwem $\frac{1}{6}$
|
||||
* [+FB]FB z prawdopodobieństwem $\frac{1}{6}$
|
||||
* F z prawdopodobieństwem $\frac{1}{6}$
|
||||
|
||||
<img src="Screenshot 2021-03-14 at 07.32.36.png" alt="Screenshot 2021-03-14 at 07.32.36" style="zoom:33%;" /><img src="Screenshot 2021-03-14 at 07.32.56.png" alt="Screenshot 2021-03-14 at 07.32.56" style="zoom:33%;" /> <img src="Screenshot 2021-03-14 at 07.33.17.png" alt="Screenshot 2021-03-14 at 07.33.17" style="zoom:33%;" />
|
||||
|
||||
### zadanie
|
||||
|
||||
Obecnie zdarza się tak, że L-System wchodzi w ostatnią regułę na samym początku i nic nie wyrasta. Innym razem wyrasta bardzo dużo odgałęzień i całość wymyka się spod kontroli a na pewno przestaje przypominać roślinę. Pomyśl jak można zaradzić tym dwóm problemom, zmodyfikuj L-System tak, by ich uniknąć. Możesz dodać nowe symbole lub/i wykorzystać symbole parametryczne.
|
||||
|
||||
## Zadanie domowe
|
||||
|
||||
Scena `LSystem3D` jest kopią sceny `LSystem2D`, korzysta ona ze skryptu `Turtle3D` zamiast `Turtle2D` (chociaż są one na razie identyczne). Dodaj do `Turtle3D` obsługę obrotów w trzech wymiarach za pomocą znaków:
|
||||
|
||||
* `&` obrót do góry (pitch), czyli obrót względem osi X o kąt $\delta$
|
||||
* `^` obrót do góry (pitch), czyli obrót względem osi X o kąt $-\delta$
|
||||
* `\` obrót do obrót w prawo (roll), czyli obrót względem osi Y o kąt $-\delta$
|
||||
* `/` obrót do obrót w lewo (roll), czyli obrót względem osi Y o kąt $\delta$
|
||||
|
||||
Poza tym dla symboli `L` i `F` dodaj interpretacje kolejno jako liść i kwiat. W folderze Models są gotowe modele, ale możesz ściągnąć własne.
|
||||
|
||||
Wykorzystaj dotychczasową wiedzę i powyższą interpretację, by stworzyć L-System generujący roślinę polną jak poniższy chaber.
|
||||
|
||||
![rysunek chabra z wikipedii](7_Centaurea_cyanus.jpg)
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user