My simple-minded attempts at various ways to compute (or represent) the 2D curve are given in http://www.jjj.de/fxt/#fxtbook (go for the index entry "Hilbert curve"). I found that the moves are a simpler device than the turns (left, right, straight), see e.g. sections 36.9 "A function that encodes the Hilbert curve" (p.734) and 36.9.2 "The turns of the Hilbert curve" (p.736). I'd much like to see a generalization of the string substitution rules for the 2D curve, a --> -bF+aFa+Fb- b --> +aF-bFb-Fa+ + --> + - --> - F --> F (start with "a"), for higher dimensions. At least for 3D. It seems one needs more that 3 nontrivial rules (and non-drawing symbols, generalizing "a" and "b" above; do 6 suffice?). Yes I know of methods for 3D ones, like the obscure string substitution "a" --> "^<aF^<aFa-F^>>aFavF+>>aFa-F>a->", // "draw": "F" --> "F", // rotations: "+" --> "+", // +z "-" --> "-", // -z "^" --> "^", // +y "v" --> "v", // -y "<" --> "<", // +x ">" --> ">" // -x (can someone render this more symmetrical/clear?) ... and Butz' algorithm for all dimension (which I completely fail to understand). Any technique to find morphisms (string substitutions) for a given (sufficiently long) string would also be helpful. just my 2 nano-cents P.S.: is there any paper dealing with three- or higher dimensional Hilbert curves that is not totally obscure? * Stephen Gray <stevebg@roadrunner.com> [Mar 31. 2008 09:21]:
[... Hilbert curve ...]