The images you see to the right were all created with IFS Peano.* Click here or click the logo above for a test drive! IFS Peano is free
software. Download it at Sourceforge! * The full size images were created with IFS Peano. The images were then resized with the GIMP. Click here to learn more about processing IFS Peano images with the GIMP. |
hilbert.pifs |
|
When the applet starts up, you should see a square design area. That square is where you will design the template for your space-filling curve. This diagram steps you through a basic construction.
|
The preview area will show an approximation of the space-filling curve. When you want a further look at what you see in the preview area, click on the "Render Fractal" button. This will bring up a dialog box that allows you to create a larger, more colorful, and more or less detailed version of your space-filling curve. The seeded deterministic method yields the most interesting results.
Hilbert.pifs was created with the seeded deterministic method using a single color. Peano-like.pifs is a poster (showing 4 consecutive steps of the curve creation) created with the seeded deterministic method using a single color. Random1.pifs was created with the seeded deterministic method using one color per map. Random2.pifs was created using the Random render method. In fact, all space-filling curves rendered using the single color, one color per map, or random render methods will just be squares. This shows that the attractor of the IFS (the space-filling curve) really does fill a square!
Clicking the "Directed" (or "Undirected") button toggles the design area between primitive shapes with arrow heads (directed) and primitive shapes with no arrow heads (undirected). Directed primitives will produce directed space-filling curves, and undirected primitives will produce undirected space-filling curves.
Clicking the "Previous Phase" button brings you back to the endpoint selection phase of the process.
Clicking the "Primitive" button in the design area will cycle
the
primitive shape closest to the button. There are 13 directed and 9
undirected primitives.
Clicking the "Transform" button in the design area will cycle
the
transformation (rotation and reflection) of the primitive shape closest
to the button. There are 8 transformations.
The automatically generated templates are nice, but they are not the be-all end-all of template generation. As noted above, when the ending point is selected, a random path from start to end is automatically filled in. You don't have to be content with just this one, though. You can always click the "Previous Phase" button, and then reselect the ending point. This will generate another random template.
You don't have to be content with that, either, though. You can use the "Primitive" and "Transform" buttons to manually create any one of the 518 possible template paths! A valid template meets the following four conditions.
In 1891, David Hilbert wrote a paper describing the first non-intersecting space-filling curve. Hilbert.pifs (above) shows one of the steps of its construction. To recreate the Hilbert Curve, build the template below using the "Primitive" and "Transform" buttons in the design area. Then click the "Efficient Completion" button.
The .pifsfiles hold all the information about a given template and the Iterated Function System used to create the image in the preview area. There are seven types of lines that will appear in .pifs files.
Phase: Describes which phase of the building process the template is in.Seed: Describes the starting shape (iteration 0) of the space-filling curve.