Dračí křivka

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

10. iterace dračí křivky Dračí křivka (z angl. Dragon curve) je soběpodobná křivka, která má vlastnosti fraktálu. Může být aproximována např. L-systémem nebo systémem iterovaných funkcí. Poprvé jí popsal fyzik z výzkumného střediska NASA John Heighway, po kterém je někdy nazývána „Heighway Dragon“.

...
...
...

Vlastnosti

soběpodobnost - dračí křivka má mnoho sobě-podobných částí, které jsou vzájemně otočeny o 45° a jejich velikosti jsou násobky v poměru 1:√2 Soběpodobnosti dračí křivky * rozměry křivky jsou 1,5 × 1 (při délce výchozí úsečky 1) +morepng|700px'>Rozměr dračí křivky je 1,5 × 1 * délka křivky se každou iterací násobí √2, z každého segmentu délky s se stanou dva segmenty délky \textstyle{s \over \sqrt{2}} :{2s \over \sqrt{2}} = {2s \over \sqrt{2}} \cdot {\sqrt{2} \over \sqrt{2}} = \sqrt{2}s * křivka nikdy neprotne sama sebe, to je vidět, když se vykreslí se zkosenými rohy Dračí křivka se zkosenými rohy, aby bylo vidět, že se nikdy neprotne * fraktálová dimenze křivky je \textstyle{{\ln 2 \over \ln \sqrt{2}} = 2}, jedná se tedy o plochu-vyplňující křivku * plocha křivky je \textstyle{1 \over 2} (při délce výchozí úsečky 1) * fraktálovou dimenzi hranice křivky numericky aproximovali Angel Chang a Tianrong Zhang, dnes již známe analytické vyjádření: :\log_2\left(\frac{1+\sqrt[3]{73-6\sqrt{87}}+\sqrt[3]{73+6\sqrt{87}}}{3}\right)\cong 1. 523627086202492.

Konstrukce

Jedna z možných konstrukcí je následující. Začne se s úsečkou o libovolné délce. +more V Každém kroku se nad každou úsečkou postaví pravoúhlý rovnoramenný trojúhelník. Přepona tohoto trojúhelníka bude výchozí úsečka a orientace trojúhelníka se bude střídat, na první úsečce doleva, na druhé doprava (směr vzhledem k průchodu křivkou). Nakonec se přepony odeberou a vznikne další iterace.

Prvních 5 iterací s 9. iterací

Animace vývoje:

Animovaný vývoj Dračí křivky

L-systém

Výše uvedený postup lze simulovat následujícím L-systémem:

Tento L-systém je parametrický, dračí křivka však lze popsat i bezparametrickým L-systémem. Ten má tu nevýhodu, že výsledná velikost obrázku, záleží na počtu iterací (na rozdíl od prvního L-systému). +more Na druhou stranu se v něm nevyskytují žádná iracionální čísla, se kterými počítače neumí pracovat, proto bude aproximace velmi přesná i pro vysoké iterace.

Výsledek bude vznikat po iteracích takto:

Animace rozvoje dračí křivky

Systémy iterovaných funkcí

Dračí křivka je také limita následujícího systému iterovaných funkcí v komplexní rovině:

:f_1(z)={(1+i)z \over 2} :f_2(z)=1-{(1-i)z \over 2}.

Použitím dvojice reálných čísel místo komplexního dostaneme tyto dvě funkce:

:f_1(x,y)= {1 \over \sqrt{2}} \begin{pmatrix} \cos 45^{\circ} & -\sin 45^{\circ} \\ \sin 45^{\circ} & \cos 45^{\circ} \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} :f_2(x,y)= {1 \over \sqrt{2}} \begin{pmatrix} \cos 135^{\circ} & -\sin 135^{\circ} \\ \sin 135^{\circ} & \cos 135^{\circ} \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} + \begin{pmatrix} 1 \\ 0 \end{pmatrix}

Skládání papíru

Pomocí proužku papíru se dá Dračí křivka sestrojit následovně. Proužek přehýbáme napůl tak dlouho, dokud nevznikne čtverec. +more Poté jednotlivá složení rozevíráme, vždy ale jen o 90 stupňů.

Postup skládání papíru

Kód v PHP

$y2){ $x3=($i&1). $x1:$x2; $y3=($i&1). +more$y2:$y1; } elseif($x1>$x2 && $y1$x2 && $y1>$y2){ $x3=($i&1). $x2:$x1; $y3=($i&1). $y1:$y2; } } $points[]=array($x3,$y3); } $points[]=end($oldpoints); } for($i=0;$i Výše uvedený kód nejdříve po jednotlivých iteracích vytváří nové body (vrcholy trojúhelníků nad stávajícími úsečkami), které nakonec hromadně vykreslí. Souřadnice všech bodů si uchovává v poli, jehož velikost se zdvojnásobuje s každou iterací. Vzhledem k jednoduchosti operace se zde lze obejít bez rovnic pro obecnou rotaci geometrických útvarů. Rekurze v tomto případě též není, zásobník více méně simuluje práce s polem; program by však šel do rekurze přepsat.

Dláždění roviny

Protože Dračí křivka má vlastnosti plochu-vyplňující křivky a dá se přikládat sama k sobě tak, že části na sebe těsně dolehnou, dá se pomocí ní dláždit rovina. Na následujících obrázcích je několik způsobů dláždění.

Image:Dragon tiling1. svg|1. +more krok Image:Dragon tiling2. svg|2. krok Image:Dragon tiling3. svg|3. krok Image:Dragon tiling dragon. svg|Postup Image:Dragon tiling4. svg|4. krok Image:Dragon tiling5. svg|5. krok Image:Dragon tiling6. svg|6. krok Image:Full tiling dragon. svg|Plná dračí křivka Image:Full tiling dragon2. svg|1. krok Image:Full tiling dragon3. svg|2. krok Image:Dragon spiral tiling. png|3. krok.

Reference

Související články

Fraktál * L-systém

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top