C/C++ week November Black Friday
Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
Pouze tento týden sleva až 80 % na e-learning týkající se C/C++

L-System rostlina v C# .NET

Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem.
Vydávání, hosting a aktualizace umožňují jeho sponzoři.

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í:

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

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 193x (560.71 kB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

 

Program pro vás napsal Michael Olšavský
Avatar
Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!
...
Všechny články v sekci
Zdrojákoviště C# .NET - Okenní aplikace Windows Forms
Aktivity (1)

 

 

Komentáře

Avatar
Milan Křepelka
Redaktor
Avatar
Milan Křepelka:26.12.2013 8:21

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
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Milan Křepelka
Michael Olšavský:26.12.2013 9:15

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.