EyeFract 0.6.1
I. Installation
tar -zxvf eyefract-x.x.x[-x].tar.gz;
cd eyefract;
./install-sh
II. Starting EyeFract
Command line:
./eyefract
Command options:
-m <filename> or --map <filename>
Bypass the default colormap, and load <filename>.
If <filename> cannot be found, the default map is loaded.
If that file (default.map) cannot be found, EyeFract dies.
-b or --bare
Show only EyeFract's main window, hiding the parameters, preview and color dialogs.
-l <filename> or --load <filename>
Load the specified filename as the initial state. The colormap entries will override any specified by -m.
-o <filename> or --output <filename>
Output the file specified by -l or --load to a .ppm file.
--version
Print version info
-? or -h or --help
Display command-line options
III. Basic Usage
Upon starting EyeFract, a fractal is automatically created. It is the basic
Mandelbrot set for f(z)=z2+c. EyeFract must always have one fractal viewed at
a time, so there always must be at least one fractal loaded.
When an image is loaded, right-clicking on the fractal will bring up a
context menu with the following options:
| Next/Previous: |
Displays the next/previous fractal. |
| Delete: |
Deletes the displayed state. If there is only one fractal loaded, this option is not displayed. |
| Zoom in/out: |
Zooms in/out by the factor listed in the parameters dialog, centering the new image where the user right-clicked. |
| Re-center image: |
Recalculates the currently-loaded fractal, making the center of the new image where the user right-clicked. |
| Re-scale image: |
Recalculates the currently-loaded fractal, adjusting the Cartesian endpoints of the image to match the image width-to-height aspect ratio. |
| Re-scale and re-center: |
Does both of the above. |
| Change Colors: |
Recalculates the currently-loaded fractal, updating the colors with the current colormap. |
| Create Julia: |
This option is only available for Mandelbrot sets, as it will generate the Julia set corresponding the point where
the user right-clicked. The complex parameter for the new Julia set will be the Cartesian coordinates corresponding
to this point. The viewing range (xmin-xmax, ymin-ymax) will remain the same. |
A new image can also be arrived at by clicking and dragging the primary
mouse button over a region of the shown fractal. By default, the new image will
be of the same aspect ratio of the original, but that can be adjusted by the
option "Maintain aspect ratio" in the Parameters window.
Zooming has its limitations, however. Zooming in too far will exceed the
boundaries of the computer's float type. When dealing with numbers on the order
of 10^-15, the float type is insufficient. If one zooms too far down, the
displayed image will be some streaked lines which are indecipherable. I am
working on importing a big-number library which would eliminate this problem,
allowing zooming in to an arbitrary depth.
When a fractal is being generated, a working dialog will appear, allowing
the user to abort the image creation. The status bar of the main window will report
the percentage of the fractal completed.
IV. Menus
File menu:
Load/Save state: Preset fractals can be loaded or parameters from an image you
create can be saved to a file. The given Mandelbrot presets have the extension .msn
and the given Julia presets have the extension .jsn. The information stored in each
file is are the required parameters for the fractal (Cartesian coords, width...) as
well as the color info. I/O Error messages will be printed to stdout in the case of
errors, and upon successful completion of a save, a line will be printed to that
effect in stdout. EyeFract will automatically determine whether a Julia or
Mandelbrot state file has been loaded (much better than earlier versions!!).
Import/Export colormap: Colormaps can also be saved via the File menu. For more
info on colormaps, see section VII.
Export JPEG: A fractal can be exported to a JPEG image once it has been
generated. The compression algorithm was supplied by IJG, and it is their libjpeg
supplied with eyefract. The install-sh script will determine if libjpeg has been
installed, and if not, this option will not appear in the File menu.
Export PPM: A fractal can be exported to a PPM image once it has been
generated.
Quit: Quits.
State menu:
Julia/Mandelbrot: What the "current" state is. When a state is created, its
type (Julia or Mandelbrot) will be assigned appropriately (no need to explain that).
If a state is reloaded (by using the Preview window), the menu options will be
updated. Selecting the other set will only take effect if the "Iterate" button is
hit in the Parameters dialog. If the user switches the fractal type and then zooms
in into the current fractal, the generated image will be returned to the original.
This menu option also controls which type of file is loaded when File->Load State...
is selected.
Use color: If selected, the generated images will have the colors assigned by
the loaded colormap. If not, the images will be black and white.
View menu: Selecting any item in this menu will show that dialog box. If the
box is already shown, nothing happens.
Help menu:
About EyeFract...: Dialog box about EyeFract.
There are two navigational buttons on the menu bar
of the main window. These buttons will display the previous and next images with respect to the
currently viewed one. It will wrap around, so that hitting previous (<-) if the
first image is selected will bring up the last image, and vice versa (hitting
the -> button). These navigational buttons also appear in
the Preview window (see Section VI).
V. Parameters
Fairly intuitive:
| |
f(z) = z^2 + c |
the function which is iterated. This option will be presented as either a combobox or a scrolled list,
based on the results of the ./configure script. The entries available will the multiple functions which
can be used for generating the fractal. |
|
| |
xmin, xmax, ymin, ymax |
boundaries of the fractal |
| |
Cnt./Rad. (Min./Max.) |
toggle the way coordinates are displayed between xmin/xmax/ymin/ymax and x-center/x-radius/y-center/y-radius. |
| |
Reset Coords |
reset xmin, xmax, ymin, ymax to -2, 2, -2, 2 |
| |
Complex parameter |
the parameter "c" found in the different equations, where c=a+bi. a+bi must be of length < 2. (length=sqrt(a^2+b^2)) |
| |
Max # of iterations |
when the iterative function quits. With each iteration, the program checks the length of the current variable. If the length>2, it stops. But, if we've reached this maximum number and the length<=2, it stops anyway. If the image you get is not very clear, try increasing the number of iterations. |
| |
Width, Height |
size (in pixels) of the fractal |
| |
Zoom Factor (>1) |
how much the zoom function works when single-clicking on the image. Using either the primary or secondary mouse button will work; primary zooms in by a factor of this parameter, and secondary zooms out by a factor of the inverse of this parameter |
| |
Maintain aspect ratio |
if selected, dragging an area to zoom into on the fractal will force the area to be of the same
width-to-height ratio as the current image. in addition, if the width field is adjusted, the height
will automatically be updated maintaining the same aspect ratio. similarly, if the coordinates are
being viewed in Center/Radius mode, changing the radius of one dimension will appropriately change the
radius of the other dimension. |
| |
Iterate |
create a new fractal with the above parameters if no changes have been made since the last fractal generation, nothing will happen |
| |
Hide |
hide the parameter window |
VI. Preview Window
This window will show thumbnails of all states currently in memory. Note that
this feature is not enabled on Solaris machines, as Solaris' port of Lesstif is buggy.
Single-clicking on any thumbnail with the primary mouse button will bring up
that image in the main window, and load its associated parameters into the
Parameters window.
Using the secondary mouse button on a preview image will raise a context
menu consisting of two options: Delete and Change colors. Delete will delete
the state and, naturally, its preview. It is impossible to delete a state if
there is only one loaded in memory. Change colors will redraw the fractal using
the current colormap, overwriting the existing state. While the fractal is
being redrawn, this operation can be aborted, and the state will remain with its
original colors. This abort will not delete the state. For more on color, see
section V.
There are two navigational buttons at the far left of the preview window.
These buttons will display the previous and next images with respect to the
currently viewed one. It will wrap around, so that hitting previous (<-) if the
first image is selected will bring up the last image, and vice versa (hitting
the -> button). In Solaris, these navigational buttons appear on the menu bar
of the main window.
VII. Colormaps
Color is what really helps beautify fractals. How each fractal is colored
greatly alters how much detail is visible, and which detail is visible.
EyeFract's colormaps are 256-celled arrays. When each point in the fractal is
iterated, the number of iterations before the function quits will determine the
color of the point. If the function reaches the maximum number of iterations
without exiting, the color of that point will be black. If not, the color of
that point will be the color in the current colormap in the cell of the number
of iterations it took to exit. If the number of iterations is greater than the
size of the colormap array, the array will wrap around to the beginning.
To view the current colormap, open the Color Settings window from the View
menu. The entire colormap array is displayed. Each cell's contents can be
modified by selecting a cell in the map and adjusting the slider bars below the
colormap. To save the updated cell, click "Apply". Clicking "Revert" will
change the color back to its original state. If a new cell is selected before
the current cell's changes have been saved, the changes are ignored.
Colormaps can be imported and exported from either the File menu in the main
window, or via the buttons labeled "Import" and "Export" in the Color
Settings window.
In addition, new colormaps can be created. Selecting "New" will bring up
the New Colormap window. Select two colors using the slider bars and a number
of "Stripes" to generate a new colormap. The algorithm will blend the two
colors in a linear manner from one to the other. Setting stripes to zero will
create a colormap starting at color 1 and gradually becoming color 2 with each
subsequent cell, where the final cell is color 2. Stripes = 1 will create a
colormap in which color 1 will be the start and end, and color 2 will be the
color in the middle, with blending occuring with each cell, making the
appearance of a stripe of the second color in the middle of the colormap.
Selecting "Hide" will, naturally, hide the colormap window.
VIII. Troubleshooting
Quick tips:
If there are compilation problems surrounding ComboBox.h, edit eyefract.h so that EYECB is NOT defined (set the appropriate 1 to 0). EyeFract will replace the combo box with a scrolled list.
See BUGS for more info.
Email eyeatjm (at) gmail.com with questions/comments/other problems.
|