Fractal - a Public Screen fractal-drawing tool ---------------------------------------------- Copyright ©1993 by Timothy B. Kreuzer. All rights reserved. Version : 1.2 Author: Tim Kreuzer (and the KreuzerSoft support team) Language: SAC/C V6.3 **************************************************************************** * * * As of Version 1.2, Fractal is no longer Freeware. Payment for using * * Fractal regularly is now set at "send me some feedback". * * * * I create my programs for myself, basically, but I DO take the time to * * try and make them more friendly to the general public. I also don't * * usually write detailed documentation for programs only I am going to * * use. * * * **************************************************************************** Features: Opens on the default public screen (initially the Workbench) (*) Usable on any screen with at least 2 "free" pens (*) Avoids usage of all pens already "obtained" upon program start (i.e., AmigaDOS 3.0 "Protected Pen" compliant) Separate user interface and drawing windows Resizable drawing window with point-and-click zoom-in and centering functions Full GadTools Intuition interface Supports the following types of fractals: - Mandelbrot - Julia Set - Magnetism - Lambda Exponential - Lambda Cosine - Biomorph All math done in double precision floating point Separate versions for: - 68020 without FPU (stock A1200 and A4000/030) - 68020 with FPU (improved A1200 and A4000/030) - 68040 (stock A4000/040) Tested OK using the Enforcer. (*) = New feature in V1.2 ------------------------------------------------------------ Extremely compatible with my PaletteTool and PST programs(!) ------------------------------------------------------------ Limitations: Can only be used from the Workbench (start via Icon). Requires AmigaDOS 3.0+ and the AGA chipset. FPU (68881/68882) highly recommended for maximum enjoyment! ----------------- Release 1.2 Notes ----------------- 1) Added a few optimizations which increased rendering speed. The Mandelbrot and Julia fractal types are especially faster than before! 2) Fixed bug where the Draw window's max dimensions were limited to 640x400. Should now be whatever the default Public Screens dimensions are. 3) Reworked entire user interface: - Added "Pause" button/functionality - Changed Zoom Out level-selection from slider gadget to cycle gadget - Added "help text" in screen banner for Draw/Pause/ZoomIn/Center functions - Added "smart iconify" ("I" button) functionality for the Controls window - Added "About" button/functionality 4) Rendering will now automatically begin upon the following actions: - Draw window resizing - Zoom Out button selection - After picking the "lower right-hand" corner of a Zoom In action ----------------- Release 1.1 Notes ----------------- 1) Added five new fractal types. 2) Added the ability to cancel an in-progress "Draw" via the new "Stop" button. 3) Modified the existing "Center" function so that it operates more "graphically" (via a cross-hair in the Fractal drawing window). 4) Added more gadget "disabling" during Zoom/Center functions to help the user not get things confused. 5) Slight reworking of the Control window layout. 6) Corrected flaw in Control window which kept it from being Iconfied or Menufied for those like me who use the PD programs bearing the same names. 7) Changed position of the "window resize" gadget in the Fractal drawing window (MUCH nicer looking now!). ------------------------------------------------------------------- Special note to those familiar with my LyapunovSpace program (V1.2) ------------------------------------------------------------------- Fractal operates almost identically to LyapunovSpace. If you have used LyapunovSpace in the past, I hope you have enjoyed it, and that you also enjoy Fractal! ---------------------------- Getting started with Fractal ---------------------------- Just click on the Fractal icon. Fractal will detect the number of "free" pens available on the default Public Screen (initially the Workbench), and open it's control and drawing windows on this screen. After both windows open, select the Draw button in the Controls window. The start-up fractal type of Mandelbrot will then be drawn in the Fractal drawing window. ------------------------------- Getting the most out of Fractal ------------------------------- 1) Read the documentation! 2) Run Fractal on higher resolution screens to get the most detailed images. Run Fractal on screens with higher "# of colors" to get the most colorful images. You can adjust the resolution and "# of colors" used by Fractal by: a) Changing these limits for the Workbench screen (via the ScreenMode program in your Preferences drawer). b) Creating a (default) Public Screen of any resolution/depth supported by your Amiga using my PST (Public Screen Tool) program. The latter option (b) is recommended by the Author. 3) Take control of the coloring of your Fractal images. The color pen scheme used by Fractal is identical to that used by my PaletteTool program (in it's "Protect" palette mode). PaletteTool can/should be used to "color" your Fractal image. Try using multiple color "spreads" for breathtaking Fractal images. BELIEVE ME - Playing around with the Fractal image's colors can result in a "blah" looking Fractal coming to life! 4) Use color cycling for truly exciting effects. Starting with V1.1, PaletteTool supports cycling of the Public Screen palette in either direction and allows you to control the speed of the cycling. 5) Use the ability to size/shape the Fractal drawing window to your advantage! ********************************************************************** Keep the window small while you experiment. Remember that the larger the window, the longer (in general) it will take to render an image. You can always increase the window size once you've got a image worked out at a smaller window size. ********************************************************************** Also, try wide-and-short and tall-and-thin window sizes for interesting effects. 6) Experiment! You can always hit the "Pause" and/or "Stop" buttons if your image is either taking too long to draw or you want to free-up some CPU resources for other things. If you really get "lost" in an image, you can always Zoom Out to "get your bearings back". Keep the Depth value low while you get confortable with a given fractal type and how it's input values work. Keep the Depth value low if you are using the non-FPU version of Fractal, so that you get more immediate gratification. Remember that the greater the Depth, the longer (and more detailed) the Fractal image (usually) will be. Larger Depth values also cause more colors to be used in the Fractal image. Modify the various parameters SLIGHTLY while you get a feel for how they are affecting the fractal image. This will help you avoid getting frustrated. ----------------------------------------------------------------------- Recommended starting values for exploring the different Fractal Type(s) ----------------------------------------------------------------------- 1) Mandelbrot Keep the Depth value at-or-below 50 Increase Depth value as you Zoom In 2) Julia Real Constant - try values around -110 Imaginary Constant - try values around 25 Keep the Depth value at-or-below 50 Increase Depth value as you Zoom In 3) Magnetism Real Constant - try values around 400 Imaginary Constant - try values around 0 Keep the Depth value at-or-below 50 4) LambdaExpZ (Lambda Exponent Z) Lambda Constant - try values around 100 Keep the Depth value at-or-below 50 5) LambdaCosZ (Lambda Cosize Z) Lambda Constant - try values around 100 Keep the Depth value at-or-below 50 Increase Depth value as you Zoom In 6) Biomorph Real Constant - try values around 50 Imaginary Constant - try values around 0 Keep the Depth value at-or-below 50 ---------------------------------- Explanation of the Fractal windows ---------------------------------- Fractal opens two separate (but related) windows: Fractal Controls - which is the primary user interface Fractal - which is where all the drawing occurs this is also called the "Draw" window The Controls window contains the following items: Xmin/Xmax/Ymin/Ymax - Four string gadgets showing the numerical limits of the drawing area. The X axis is horizontal (left->right = min->max). The Y axis is vertical (bottom->top = min->max). Can be used for direct entry of X/Y limits. ***************************************** Also updated when using the Zoom In, Zoom Out, and Center functions. ***************************************** ******************************************** After manually updating the X/Y limits, select the Draw button to see the new image. ******************************************** The program will not allow a min >= max, and a max <= min. It also limits the ability to go way outside the X/Y values of the startup fractal image. RealC - Slider gadget indicating the "Real number" constant value used Julia, Magnetism, and Biomorph fractal computation. Slider value is the Real Number constant multiplied by 100. For example, if the slider value is 134, the actual constant value used will be 1.34 Disabled for all other Fractal Types. ImagC - Slider gadget indicating the "Imaginary number" constant value used Julia, Magnetism, and Biomorph fractal computation. Slider value is the Imaginary Number constant multiplied by 100. For example, if the slider value is 134, the actual constant value used will be 1.34 Disabled for all other Fractal Types. Lmbda - Slider gadget indicating the "Lambda" constant value used in LambdaExpZ and LambdaCosZ fractal computation. Slider value is the Lambda constant multiplied by 100. For example, if the slider value is 134, the actual constant value used will be 1.34 Disabled for all other Fractal Types. Fractal Type - Cycle gadget indicating the type of fractal to be drawn: Mandelbrot Julia (Julia Set) Magnetism LambdaExpZ (Lambda Exponent Z) LambdaCosZ (Lambda Cosize Z) Biomorph Change the type by left-clicking the gadget. Depth - Slider gadget indicating the "iterative depth" limits of the drawing area. The higher the Depth, the greater the detail. The higher the Depth, the longer a Draw takes. Draw - Draws a fractal in the Fractal window, based upon the parameters in the Contols window. Pause - Pauses a "Draw" action. To resume a paused "Draw", press the "Draw" button. To terminate the current "Draw", press the "Stop" button. Stop - Stops an in-progress Draw action. Zoom In - Allows you to zoom into (i.e., enlarge) a rectangular area on the Draw window. ********************************************** To use: 1) Select the Zoom In button. 2) Move the pointer to the Fractal draw window. 3) Select (left mouse button) the upper left corner of the area you want to zoom into. 4) Release the mouse button. 5) Moving the pointer will cause a dashed-line rectangle to appear. This rectangle is the area which will be "zoomed into". 6) When the rectangle is the desired size, click the left mouse button to "lock" the zoom. At this point, the X/Y coordinates will be updated. ********************************************** Zoom Out - Allows you to zoom out of the currently defined X/Y coordinates. As with Zoom In, the X/Y coordinates are updated, and you must select the Draw button to see the new image. The degree of "zoom out" can be controlled via the Amt slider. Amt - Controls the "Zoom Out scale" of the currently defined X/Y coordinates. The range of 1 -> 4 denotes the scale of zoom out: 1=small through 4=large. Center - Allows you to establish a new center point for the Fractal display (i.e,. X/Y coords). A.K.A. Panning. ********************************************** To use: 1) Select the Center button. 2) Move the pointer to the Fractal draw window. 3) Click and release the left mouse button. This will cause a cross-hair to appear in the window. 4) Move the cross-hair with the pointer, until it is over the spot on the image which you wish to be the new "center". 5) Click the left mouse button to "lock" the new center. At this point, the X/Y coordinates will be updated. ********************************************** I - Causes the Control window to iconify. Once iconified, selecting the "Open" button will restore the Control window to it's previous size/position/state. Note that the iconfied window can be moved! ? - Opens an info requestor. --------------------------- The Fractal Draw window is: --------------------------- - Re-sizable only when a "Draw" is not in progress. - Erased when it is resized. --------------------- Credits/Miscellaneous --------------------- The GUI for Fractal was developed using Jan van den Baards' wonderful GadToolsBox. Thanks to the KreuzerSoft support team. Thanks to the Nations Capital Amiga Users Group (NCAUG). Thanks to Dave at Buried Treasure in Rockville, MD. ********************************************************************* * Please patronize your local Amiga dealers (like Dave), everyone. ** * ** * Most of these people are NOT making tons of $$$$, so if you'd ** * like to keep a local presence in your area, GO BUY SOMETHING! ** ********************************************************************* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >> Please let me know if you have any problems/suggestions/comments/etc. << >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< I can be reached at T.KREUZER on GEnie, or via regular mail at: 6711A N. Washington Blvd. Arlington, VA 22213 ------------- Legal Section ------------- Fractal Version 1.2 Copyright ©1993 by Timothy B. Kreuzer. All rights reserved. Fractal is freely redistributable, as long as the following rules are followed: - This doc file must be kept with the executable(s), and must include the above copyright notice. - You may not charge any fee for this program, other than the basic cost of distribution media and/or BBS access. Of course if you want to pursue selling this, feel free drop me a line. Fred Fish is hereby granted permission to include this program (and it's accompanying documentation) in his excellent collection of Amiga software. ------------------ Commercial Section ------------------ The following KreuzerSoft projects are (hopefully) available on a BBS near you: PST V1.0a - Public Screen utility for 3.0/AGA. PaletteTool V1.3b - Palette program for 3.0/AGA screens. LyapunovSpace V1.2 - Lyapunov fractal program for 3.0/AGA. Terrain V1.1 - 3-D fractal terrain program for 3.0/AGA. FindColor V1.0a - "Color-by-Name" selector for 3.0/AGA. Worm V1.1 - Port of SUN-Unix graphic toy for all Amigas. DLA - Diffusion Limited Aggregation simulation for all Amigas. Jimi - 8-color Jimi Hendrix image for your Workbench. All for the incredibly low, low price of FREE!