L-System rostlina v C# .NET

C# .NET Windows Forms Zdrojákoviště L-System rostlina v C# .NET

Algoritmus funguje na principu postupného rozvíjení základního zadání podle předem určených pravidel. Při správném zkombinování s grafickým algoritmem (přesněji Turtle), který výslednou řadu přečte, přeloží a vykreslí, mohou vznikat velmi zajímavé vzory. Chování programu se dá jednoduše předpovídat. Zde je příklad:

Základní proměnné:
A, B

Pravidla:
A => A B
B => A

n(počet opakování) = 4

Průběh:

n=0:         A
            / \
n=1:       A   B
          /|    \
n=2:     A B     A
        /| |     |\
n=3:   A B A     A B
      /| | |\    |\ \
n=4: A B A A B   A B A

Vykreslování:

Pravidla přímo implementovaná do L-systému:

  • F = krok ve směru a vykreslení
  • f = krok ve směru
  • [ = uložení posledního bodu do zásobníku
  • ] = navrácení k poslednímu uloženému bodu
  • + = otočení o x radiánů
  • - = otočení o -x radiánů

Součástí je pseudonáhodná změna délky, úhlu a automatické určení barvy podle návaznosti. Je zde také pokus o automatické generování pravidel a základního řetězce, ale je spíše v ranné fázi.

Program obsadil první místo v soutěži Machr na Algoritmy.


Galerie

Program byl vytvořen v roce 2013.

 

Stáhnout

Staženo 170x (560.71 kB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

  Aktivity (1)

Program pro vás napsal Michael Olšavský
Avatar
...

Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!


 



 

 

Komentáře

Avatar
Milan Křepelka
Redaktor
Avatar
Milan Křepelka:

Je to zajímavý. Nedebugoval jsem to, ale jestli jsem to četl dobře, tak průběh tý "cesty! se zapisuje do "stringu". Má tato část nějaký hlubší význam ? Nelze definici stromu zaintekgrovat jako stromovou strukturu a vygenerovat jako strom objektů rovnou ?

Jenom malá poznámka. Program je evidentně dělaný pro velký rozlišení. Na noťasovým rozlišení nevidíš ani to tlačítko.

Editováno 26.12.2013 8:22
 
Odpovědět 26.12.2013 8:21
Avatar
Odpovídá na Milan Křepelka
Michael Olšavský:

Samotnou strukturu samozřejmě je možné generovat, ale to už by zbamenalo spojení dvou algoritmů do jednoho. (Počítám s tím, že by jsi chtěl ihned ukládat i pozice). Je to dělané na full hd monitor :D díky za upozornění.

 
Odpovědět 26.12.2013 9:15
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.