Sierpińského křivka - Sierpiński curve
![]() | tento článek chybí informace o dalších Sierpińských křivkách, viz Sierpiński Curve na Wolfram MathWorld. (Ledna 2019) |
Sierpiński křivky plocha rekurzivně definovaný sekvence z kontinuální uzavřené letadlo fraktální křivky objeveno uživatelem Wacław Sierpiński, který v limitu zcela vyplňte jednotkový čtverec: tedy jejich mezní křivka, nazývaná také křivka Sierpiński, je příkladem a křivka vyplňování prostoru.
Protože Sierpińského křivka vyplňuje prostor, je to Hausdorffova dimenze (v limitu ) je .
The Euklidovská délka z th iterační křivka je
tj. roste exponenciálně s nad jakýkoli limit, zatímco limit pro oblasti ohraničené je čtverce (v euklidovské metrice).
![]() Sierpińského křivka („Sierpinského čtvercová vločka“)[1]) první objednávky | ![]() Sierpiński křivky objednávek 1 a 2 | ![]() Sierpiński křivky objednávek 1 až 3 |

Použití křivky
Sierpińského křivka je užitečná v několika praktických aplikacích, protože je symetrickější než jiné běžně studované křivky vyplňování prostoru. Například se používá jako základ pro rychlou konstrukci přibližného řešení Problém obchodního cestujícího (který požaduje nejkratší posloupnost dané sady bodů): Heuristikou je jednoduše navštívit body ve stejné posloupnosti, v jaké se objevují na Sierpińského křivce.[3] To vyžaduje dva kroky: Nejprve spočítejte inverzní obraz každého bodu, který má být navštíven; potom seřaďte hodnoty. Tato myšlenka byla použita k vytvoření směrovacích systémů pro užitková vozidla pouze na základě souborů karet Rolodex.[4]
Křivka vyplňování prostoru je spojitá mapa jednotkového intervalu na jednotkový čtverec, a tak (pseudo) inverzní mapuje jednotkový čtverec na jednotkový interval. Jeden způsob konstrukce pseudo-inverze je následující. Nechte levý dolní roh (0, 0) čtverce jednotky odpovídat 0,0 (a 1,0). Potom levý horní roh (0, 1) musí odpovídat 0,25, pravý horní roh (1, 1) 0,50 a pravý dolní roh (1, 0) 0,75. Inverzní mapa vnitřních bodů se počítá s využitím výhod rekurzivní struktury křivky. Zde je funkce kódovaná v Javě, která vypočítá relativní polohu libovolného bodu na Sierpińskiho křivce (tj. Pseudo-inverzní hodnotu). Jako vstup se berou souřadnice bodu (x, y), který se má převrátit, a rohy ohraničujícího pravoúhlého trojúhelníku (ax, ay), (bx, by) a (cx, cy). (Všimněte si, že jednotkový čtverec je spojením dvou takových trojúhelníků.) Zbývající parametry určují úroveň přesnosti, na kterou by měla být inverzní vypočítána.
statický dlouho sierp_pt2code( dvojnásobek sekera, dvojnásobek ano, dvojnásobek bx, dvojnásobek podle, dvojnásobek cx, dvojnásobek cy, int současná úroveň, int maxLevel, dlouho kód, dvojnásobek X, dvojnásobek y ) { -li (současná úroveň <= maxLevel) { současná úroveň++; -li ((čtv(X-sekera) + čtv(y-ano)) < (čtv(X-cx) + čtv(y-cy))) { kód = sierp_pt2code( sekera, ano, (sekera+cx)/2.0, (ano+cy)/2.0, bx, podle, současná úroveň, maxLevel, 2 * kód + 0, X, y ); } jiný { kód = sierp_pt2code( bx, podle, (sekera+cx)/2.0, (ano+cy)/2.0, cx, cy, současná úroveň, maxLevel, 2 * kód + 1, X, y ); } } vrátit se kód; }
Zastoupení jako systém Lindenmayer
Sierpińského křivku lze vyjádřit a přepsat systém (L-systém ).
- Abeceda: F, G, X
- Konstanty: F, G, +, -
- Axiom: F - XF - F - XF
- Pravidla výroby:
- X → XF + G + XF - F - XF + G + X
- Úhel: 45
Tady, oba F a G znamená „táhnout dopředu“, + znamená „otočit doleva o 45 °“ a − znamená „otočit doprava o 45 °“ (viz želví grafika ). Křivka je obvykle nakreslena s různými délkami pro F a G.
Podobně lze vyjádřit Sierpińského čtvercovou křivku:
- Abeceda: F, X
- Konstanty: F, +, -
- Axiom: F + XF + F + XF
- Pravidla výroby:
- X → XF-F + F-XF + F + XF-F + F-X
- Úhel: 90
Křivka šipky
The Křivka hrotu šípu Sierpiński je fraktální křivka podobného vzhledu a identického limitu k Sierpińského trojúhelník.

Křivka hrotu šipky Sierpiński kreslí rovnostranný trojúhelník s trojúhelníkovými otvory ve stejných intervalech. Lze to popsat dvěma substitučními pravidly produkce: (A → B-A-B) a (B → A + B + A). A a B se opakují a dole dělají totéž - nakreslete čáru. Plus a minus (+ a -) znamenají otočení o 60 stupňů doleva nebo doprava. Konečný bod křivky hrotu šipky Sierpiński je vždy stejný, pokud opakujete sudý počet opakování a při každé rekurzi snížíte délku čáry na polovinu. Pokud se vrátíte do liché hloubky (pořadí je liché), pak skončíte otočený o 60 stupňů, v jiném bodě trojúhelníku.
Alternativní zúžení je uvedeno v článku o de Rhamova křivka: jeden používá stejnou techniku jako de Rhamovy křivky, ale místo použití binární (base-2) expanze, jeden používá ternární (base-3) expanzi.
Kód
Vzhledem k funkcím kreslení void draw_line (dvojitá vzdálenost);
a void turn (int angle_in_degrees);
, kód pro nakreslení (přibližné) křivky Sierpińského šipky vypadá takto:
prázdnota sierpinski_arrowhead_curve(nepodepsaný objednat, dvojnásobek délka){ // Pokud je řád sudý, můžeme nakreslit křivku. -li ( 0 == (objednat & 1) ) { křivka(objednat, délka, +60); } jiný / * objednávka je lichá * / { otáčet se( +60); křivka(objednat, délka, -60); }}
prázdnota křivka(nepodepsaný objednat, dvojnásobek délka, int úhel){ -li ( 0 == objednat ) { draw_line(délka); } jiný { křivka(objednat - 1, délka / 2, -úhel); otáčet se(úhel); křivka(objednat - 1, délka / 2, úhel); otáčet se(úhel); křivka(objednat - 1, délka / 2, -úhel); }}
Zastoupení jako systém Lindenmayer

Křivku hrotu šípu Sierpiński lze vyjádřit pomocí a přepsat systém (L-systém ).
- Abeceda: X, Y
- Konstanty: F, +, -
- Axiom: XF
- Pravidla výroby:
- X → YF + XF + Y
- Y → XF - YF - X
Tady, F znamená „natáhnout dopředu“, + znamená „otočit doleva o 60 °“ a − znamená „otočit doprava o 60 °“ (viz želví grafika ).
Viz také
- Hilbertova křivka
- Sněhová vločka Koch
- Mooreův graf
- Murray polygon
- Peanoova křivka
- Seznam fraktálů podle Hausdorffovy dimenze
- Rekurze (informatika)
- Sierpinského trojúhelník
Reference
- ^ Weisstein, Eric W. "Sierpiński Curve". MathWorld. Citováno 21. ledna 2019.
- ^ Dickau, Robert M. (1996/7) "Dvourozměrné L-systémy ", Robertovy matematické figury. MathForum.org. Vyvolány 21 January 2019.
- ^ Platzman, Loren K .; Bartholdi, John J., III (1989). "Křivky vyplňování mezer a problém planárního obchodního cestujícího". Časopis Asociace pro výpočetní techniku. 36 (4): 719–737. doi:10.1145/76359.76361.
- ^ Bartholdi, John J., III. „Některé kombinatorické aplikace křivek vyplňování mezer“. Gruzínský technologický institut. Archivovány od originál dne 3. 8. 2012.
Další čtení
- Peitgen, H. O .; Jürgens, H .; Saupe, D. (2013) [1992]. Chaos a fraktály: Nové hranice vědy. Springer. ISBN 978-1-4757-4740-9.
- Stevens, Roger T. (1989). Fraktální programování v C. Knihy M&T. ISBN 9781558510371.