Hilbertova krivulja

Hilbertova krivúlja [hílbertova ~] je zvezna fraktalna krivulja, ki zapolni prostor. Prvi jo je opisal David Hilbert leta 1891 kot varianto krivulj, ki zapolnijo prostor, ki jih je odkril Giuseppe Peano leta 1890.[1][2]

Njena Hausdorffova razsežnost je 2. Evklidska dolžina ${\displaystyle H_{n}}$ je ${\displaystyle 2^{n}-{1 \over 2^{n}}}$, tj. narašča eksponentno z ${\displaystyle n}$. <br="clearall">

Računalniški program

Spodnji Java applet nariše Hilbertovo krivuljo z rekurzivno metodo:

 

import java.awt.*; import java.applet.*; public class HilbertCurve extends Applet { private SimpleGraphics sg=null; private int dist0=512, dist=dist0; public void init() { sg = new SimpleGraphics(getGraphics()); dist0 = 512; resize ( dist0, dist0 ); } public void paint(Graphics g) { int level=4; dist=dist0; for (int i=level;i>0;i--) dist /= 2; sg.goToXY ( dist/2, dist/2 ); HilbertA(level); // start recursion } private void HilbertA (int level) { if (level > 0) { HilbertB(level-1); sg.lineRel(0,dist); HilbertA(level-1); sg.lineRel(dist,0); HilbertA(level-1); sg.lineRel(0,-dist); HilbertC(level-1); } } private void HilbertB (int level) { if (level > 0) { HilbertA(level-1); sg.lineRel(dist,0); HilbertB(level-1); sg.lineRel(0,dist); HilbertB(level-1); sg.lineRel(-dist,0); HilbertD(level-1); } } private void HilbertC (int level) { if (level > 0) { HilbertD(level-1); sg.lineRel(-dist,0); HilbertC(level-1); sg.lineRel(0,-dist); HilbertC(level-1); sg.lineRel(dist,0); HilbertA(level-1); } } private void HilbertD (int level) { if (level > 0) { HilbertC(level-1); sg.lineRel(0,-dist); HilbertD(level-1); sg.lineRel(-dist,0); HilbertD(level-1); sg.lineRel(0,dist); HilbertB(level-1); } } } class SimpleGraphics { private Graphics g = null; private int x = 0, y = 0; public SimpleGraphics(Graphics g) { this.g = g; } public void goToXY(int x, int y) { this.x = x; this.y = y; } public void lineRel(int deltaX, int deltaY) { g.drawLine ( x, y, x+deltaX, y+deltaY ); x += deltaX; y += deltaY; } } 

Viri

• Hilber, David (1891). »Über die stetige Abbildung einer Linie auf ein Flächenstück«. Mathematische Annalen. Zv. 38. str. 459–460.
• Peano, Giuseppe (1890). »Sur une courbe, qui remplit toute une aire plane«. Mathematische Annalen. Zv. 36. str. 157–160.