FRACTAL2.PRG Mandelbrot Set Generator Program Originally programmed in "C" by Tom Hudson and published in the January, 1986 issue of ANALOG Computing. GFA Basic conversion, GEM support, etc. added by Blake Arnold (co-author of Ultra-Graph from the November, 1988 issue of ST-Log). Copyright 1989 by ANALOG computing, Tom Hudson, Phil Mast and Blake Arnold. This program may be freely distributed as long as all copyright notices remain intact and this documentation file is included. You should have a few files in the ARChive that this text was extracted from, the most important file being "FRACTAL2.PRG". The file "MANDEL.MBS" is the default Mandelbrot set, which is automatically loaded in when the program is booted. If it is not found in the same directory as "MANDEL2.PRG", you'll have to redraw it from the default values. Loading the default fractal (or any other fractal) set in allows you to zoom in on a part without wasting time drawing it, but more on that later. Also in the archive are several parameter files that will produce interesting fractals. Also notice I've included the source code. I wish more authors would do this because I very seldom find a program that has all the features I'd like to incorporate into it. Merge the source into the version of GFA Basic you're using. If you think you can improve on the modifications I've made, or want to add something I haven't included feel free to do so (and make sure I get a copy). However, if you just want to draw fractals I suggest using the compiled program for speed. I'm not going to go into detail on explaining the Mandelbrot set. If you need more information on fractals in general, Scientific American has published several good articles on the subject. Specifics on the relationships of the parameter values of this program can be found by reading Tom Hudson's original article in the January, 1986 issue of ANALOG Computing. Program Operation Due to the need for as many colors as possible, the program runs only in low resolution. One hint on operating the program: increasing the number of iterations increases the amount of detail the program will produce. When increasing iterations keep in mind that there is an inverse relationship between detail and drawing speed; while detail increases the program's drawing speed decreases. I seldom use over 300 iterations even for extremely small, detailed fractals. The program operates with two screens as DEGAS Elite does; a click on the RIGHT mouse button flips between the screens. While at the parameter screen holding the LEFT mouse button and clicking the RIGHT button draws a fractal with the current parameters. With those exceptions use of the mouse is normal. Drop Down Menus File Degas Save - Saves a Degas picture of the current fractal Save Fractal - Saves the current fractal (extender "MBS") Save Parameters - Saves the current parameters (extender "MBP") Load Fractal - Loads in a saved fractal Load Parameters - Loads in saved parameters to draw a fractal Options Spectrum - The programs default color palette Yellow - Two yellow palettes (select one) Gradient - Red, Green, and Blue palettes (select one) Sys. Default - Colors set at the desktop (use the Control Panel) Draw it! - Draws a fractal with the current parameters Input Data - Allows alteration of the current parameters Iterations - Allows the number of iterations to be changed Defaults - Restores default parameters The program draws a fractal in 4 passes, each time filling in more of the missing pixels on the screen. This feature allows you to see what the final fractal will look like about 3 times faster than calculating each pixel on the first pass would. It also allows you to halt the drawing and zoom in on a portion without waiting for the entire screen to be filled. To stop the program while it's drawing a fractal, hold the RIGHT mouse button until you hear a beep. After that the parameter screen will be available (switch screens to get to it), or you'll be able to zoom in on a portion of the fractal. Steps on Zooming in on a Fractal This may seem confusing at first, but once you try it you'll see how easy it really is. It's actually easier DONE than SAID. 1. Go to the fractal screen 2. Click the LEFT mouse button until you hear a bell and the "Center?" prompt appears at the top left of the screen. You are now ready to zoom in. 3. Place the crosshair on the area that you wish to be the CENTER of the fractal you will be drawing and click the LEFT mouse button until you hear a bell. 4. The "Range?" prompt should now occupy the top left corner of the screen. Place the crosshair 1/2 of the distance you wish to be your total range to the right (or left) of your center mark. 5. The program will now draw a black frame that approximates the screen size scaled to fit around your fractal. Your fractal (when drawn) will include what is in the frame, but will be scaled to fit the entire screen for greater detail. Also notice that the parameters have been adjusted to reflect the new fractal's coordinates and dimensions. I think you'll find that this is the best fractal program out for the ST. It may not be the fastest, but it's a lot easier to use than some of the other fractal programs I've seen. If you run into any bugs load the source code and fix them, or let me know about them. I can be reached on Delphi (username 1BLAKE) if you have any questions about the program.