This is file readme.txt for Fractal Drawer 1.1 created by Laurentiu Cristofor on 11/11/2001 and last modified on 12/07/2001 ============================================== * What is this file? ~~~~~~~~~~~~~~~~~~~~ This file describes the Fractal Drawer 1.1 program and also serves as a FAQ for that program. * What is Fractal Drawer? ~~~~~~~~~~~~~~~~~~~~~~~~~ Fractal Drawer (FD) is a fractal drawing program written in Java by Laurentiu Cristofor (who coincidentally is also the writer of this document). FD allows you to visualize three types of fractals: Mandelbrot, Julia, and Fractal110901. Mandelbrot and Julia are famous fractals, Fractal110901 is a less spectacular fractal that I discovered due to a programming error. FD allows you to select the area of the fractal to view by either entering its coordinates or selecting it with the mouse. * What are the features of Fractal Drawer? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FD features: - 3 types of fractals (Mandelbrot, Julia, Fractal110901) - ability to zoom in any area of the fractal by either entering its coordinates or selecting it with the mouse - can be run either as an applet or as an application - thanks to Sun's Java it can run on any platform that supports Java * What are the requirements of Fractal Drawer? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You need to have a Java2 Runtime Environment installed on your computer to run FD as either an application or an applet. A Java2 environment can be downloaded from Sun (http://java.sun.com), just download the latest JRE (must be 1.3 or higher). FD will not work with JRE 1.2 or older. You may also need to download the Sun Java Plug-in to run FD as an applet in a browser like IE or Netscape. * Is Fractal Drawer free? ~~~~~~~~~~~~~~~~~~~~~~~~~ FD is distributed freely under the terms of the GNU General Public License. For more information see the file gpl.txt that comes with the FD package. * Where can I get Fractal Drawer from? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Go to http://www.cs.umb.edu/~laur/Java/FractalDrawer/ and download FractalDrawer.jar. This contains all the Fractal Drawer files. You will need a zip utility (WinZip, pkunzip, unzip, and jar are examples) to retrieve the files that interest you from inside this package. The package itself is more than just an archive since it allows you to run FD (see next question). * What do I do with FractalDrawer.jar? * How do I run Fractal Drawer? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FractalDrawer.jar is a zip file which contains: - FD Java sources - compiled FD sources - FractalDrawer.html - an HTML file for running FD as an applet using appletviewer - FractalDrawerJPI.html - an HTML file for running FD as an applet using your browser and the Java Plug-in - readme.txt - the file you are reading - history.txt - info about the FractalDrawer versions - gpl.txt - the GNU General Public License - jar-manifest - manifest file for building the jar file - makefile - for compiling the FD files and building the jar file, assumes you have some make utility - META-INF directory - used by Java, not needed outside the jar file A zip file can be opened with WinZip, pkunzip, unzip, or jar. You can use any of these programs to retrieve a certain file from FractalDrawer.jar. Assuming that you have a Sun JDK installed on your computer you can run FD as an application by typing at a terminal (UNIX shell or MS-DOS prompt): java -jar FractalDrawer.jar and you can run FD as an applet by typing: appletviewer FractalDrawer.html If you do not have a Sun JDK installed then you need to have Sun's Java Runtime Environment JRE 1.3 or later. In this case you can run FD as an application by just double clicking on the jar file in Windows. To run it as an applet you can just open FractalDrawerJPI.html in your browser (to do this you may need to download the Java Plug-in if you don't already have it; you will be prompted to download the Plug-in if it's necessary). * What is a fractal? ~~~~~~~~~~~~~~~~~~~~ I will give here a short presentation of what the fractals presented by FD are. For more information you can check the Internet, Google for example has an index of fractal pages at: http://directory.google.com/Top/Science/Math/Chaos_and_Fractals/ One page that explains the Mandelbrot and Julia fractals is the page of Fabio Cesari: http://www.geocities.com/fabioc/ The fractals drawed by FD are sets of complex numbers chosed based on a certain series of complex numbers. A complex number belongs to a fractal set if the series initialized with it converges. To see whether the series converges, we compute its succesive values. If we can detect from one of these values that the series diverges (we look at how far the value got from the origin) then the number does not belong to the fractal set. Otherwise, if we computed N (in FD N is called iteration threshold) successive values without detecting divergence, we assume that the series converges for that number and that the number belongs to the fractal set. Members of the fractal set are assigned the color black, non-members are assigned a color from a palette based on the number of iterations that we computed until we determined the divergence of the series. Notice that the beauty of the drawed fractals actually comes from the points that do not belong to the fractal set. To draw a fractal we pick a region of the space of complex numbers (which I'll also call fractal space) and determine which of its points belong to the fractal set. Then the fractal space can easily be mapped to a system of coordinates used in drawing to a screen in order to produce an image. Actually the size of the screen will give us the number of points that we will evaluate in the fractal space (one for each pixel). The mapping of the fractal space goes like this: (x_max,y_max) (0,0) (dw-1,0) +-------+-------* ---------------- | | | | | | |(0,0) | | | +-------+-------+ | | | | | | | | | | | | *-------+-------+ ---------------- (x_min,y_min) (0,dh-1) (dw-1,dh-1) To the left we have the fractal space, the rectangle determined by the complex values x_min + i*y_min and x_max + i*y_max. To the right we have the display screen. (x_min, y_min) will be mapped to pixel at (0, dh-1) and (x_max, y_max) will be mapped to pixel at (dw-1, 0), where dw is the display width and dh is the display height. In FD you select the area of the fractal space that you want to see by specifying fractal space coordinates, and that area will be drawed by FD to the screen. Or you can just select with the mouse an area on the screen and FD will transform that area into a fractal space area and compute the fractal set for that area. * How can I get started using Fractal Drawer? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ One good step would be to learn a little about what fractals are, see previous question. But even if you don't want to do that, you can have some fun by just exploring interesting areas of the fractal, which can be easily done by selecting them with the mouse. Hide the controls to get a larger display area and then just enjoy the images. To select an area to zoom in, just click and drag to indicate the area you want to explore further. * How can I see a larger image of the fractals? * Can I hide all those buttons? * I lost the controls, how can I get them back? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Maximize the FD window (when running it as an application) and hide the controls by pressing the "Hide settings" button. This should give you plenty of display space. Note also that this will increase the time needed to display the fractal. To show again the controls just click in the fractal window. * How can I determine the fractal space coordinates? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ There is a label that gives you the fractal space coordinates of the mouse cursor (you must have noticed those values that changed fast as you moved the cursor over the fractal). This helps you determine the coordinates of the fractal space, which is useful if you want to write down the nice region that you just displayed. Just move the cursor to the bottom-left and top-right corners of the fractal and observe the coordinates. * What can I do with the iteration threshold? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The iteration threshold acts like a sort of enhancing factor, the higher it is, the more accurate the fractal representation will be. The default value should work pretty well in most of the cases but sometimes you may want to change it. Note however that higher values will lead to more computations. After zooming for many times, if the edges start to lack interesting features, try increasing this factor (change it and then click on "Apply threshold"), you should see a difference. Basically, by doing more iterations, points that were before accepted as fractal set members might now be shown to not be so. This would result in black areas getting colored and more features being added to the image. * What values should I use for x_min, x_max, y_min, y_max ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ These values determine the fractal space. You shouldn't choose values that determine an area outside the default one (x_min = -2, y_min = -2, x_max = 2, y_max = 2), because the visually interesting parts of the fractals are inside this area. If you don't understand much about these values then just ignore them and use the mouse to explore the fractals and the "Apply all" button when you want to redisplay the fractal. * What values should I use for julia_x, julia_y ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Each of these values determines a different Julia fractal, that's why they are only available for Julia. You should choose only points in the default space (x, y in the interval [-2, 2]) to get something interesting. Some values will generate much more interesting fractals than others. One way of choosing these could go like this: draw Mandelbrot, then point the cursor over it to get the coordinates of a point, and then use these coordinates as julia_x, julia_y to draw a Julia fractal. If the point is inside the Mandelbrot set (in the black area) then the Julia set will be connected (the black areas will touch each other) otherwise it won't. Experiment! * Why is there a black region below or to the right of the fractal? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ It's due to censorship, some areas of fractals are too explicit for young viewers :) Now seriously, this happens when the aspect ratio of the fractal space region is different from the aspect ratio of the display. It is not an error. * What are the buttons doing? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ There are three buttons: - "Apply all" draws a new fractal based on all the settings displayed. - "Apply threshold" sets a new iteration threshold and recomputes the currently shown fractal area. - "Hide settings" hides all the controls to provide more display area for the fractals. To show the settings again, just click in the fractal window. * Can you fix error X? * Can you add feature Y? ~~~~~~~~~~~~~~~~~~~~~~~~ If you found an error or have a suggestion you can send me email at the following address: laur72_98@yahoo.com --- Have fun using Fractal Drawer! ============================ END OF FILE ===============================