home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / j / juliaanim / !JuliaAnim / !Help < prev    next >
Text File  |  1992-09-24  |  30KB  |  568 lines

  1.  
  2. !JuliaAnim (Quadratic Julia Set Real Time Animator).
  3.  
  4. By Ivar Wind Skovgaard.
  5.  
  6. This is version 1.52, which has been finished Thursday, 24 Sep 1992.
  7.  
  8.  
  9. Introduction:
  10.  
  11. This program, I hope, can be used by everybody to see some beautiful
  12. animated sequences of Julia sets. That is what the primary purpose of it is.
  13. However it can also be used to gain some insight into the fascinating
  14. objects that Julia sets are.
  15.  
  16. !JuliaAnim displays quadratic Julia sets and uses the inverse iteration
  17. method to allow you to explore the effects of different complex constants in
  18. the formula in 'real time'.
  19.  
  20. By moving the mouse or using the cursor keys you can change the complex
  21. constant in the expression for the Julia sets and (because of the speed of
  22. the inverse iteration method as well as ARM machine code) immediately see
  23. the shape of the set change on the screen (which is what I call 'real
  24. time').
  25.  
  26. In addition to showing Julia sets the program can also display 'Mandelbrot
  27. orbits' - the forward orbit of the current value of c as it would be when
  28. generating the Mandelbrot set - these orbits are of course also animated.
  29.  
  30.  
  31. Using the program:
  32.  
  33. Double-clicking on the !JuliaAnim icon will start !JuliaAnim, which takes
  34. over all the processing time of the machine (except for interrupts).
  35.  
  36. The program is controlled from the keyboard or the mouse. Initially the
  37. mouse is selected for control and by moving it you change the complex
  38. constant c shown at the bottom of the screen. This constant determines the
  39. shape of the Julia set and it is only constant in the sense that it is
  40. constant for a given image. The whole point of this program is to see what
  41. happens when you change this constant (confused? - well you probably still
  42. will be after reading the rest of this text if you ever get that far).
  43.  
  44. The following keys can be used with both mouse and keyboard control:
  45.  
  46. A           : Toggles automatic animation on and off
  47.               (during automatic animation the constant c follows the edge of
  48.                the cardioid and the greatest circle of the Mandelbrot set).
  49.  
  50. H           : Display a help screen.
  51.  
  52. I           : Toggles the background image of the Mandelbrot set on and off.
  53.  
  54. J           : Toggles Julia sets on and off
  55.               (if Julias are switched off then orbits are switched on).
  56.  
  57. M           : Toggles between mouse and keyboard control.
  58.  
  59. O           : Toggles Mandelbrot orbits on and off
  60.               (if orbits are switched off then Julias are switched on).
  61.  
  62. P           : Toggles mouse pointer on and off
  63.               (when on the pointer is also shown during keyboard control
  64.                and will then follow the current value of the constant c).
  65.  
  66. R           : Toggles random automatic animation on and off
  67.               (during random automatic animation the constant c
  68.                moves in a direction which changes randomly).
  69.  
  70. T           : Toggles text on and off
  71.               (with text off and some automatic animation on
  72.                you can let the program run indefinitely
  73.                without worrying about burn-in on the monitor).
  74.  
  75. V           : Toggles mirroring of orbit points on and off
  76.               (mirroring (around 0+0i) of orbit points can be used, if the
  77.                Julia set is connected to display extra points belonging to
  78.                the Julia set, and if the Julia set is unconnected to
  79.                display extra points not belonging to the Julia set).
  80.  
  81. #           : (On the keypad) Changes the framerate of animations by
  82.               cycling through 25, 16.7, 12.5 and 10 frames per second
  83.               (with Shift held down the cycling is the other way round).
  84.               On an ARM2 machine the program can't quite manage 25 frames
  85.               per second (due to the limited temporal resolution of the
  86.               centisecond timer - I think). As I have not tried the
  87.               program on an ARM3, I don't know if the extra speed
  88.               solves the problem, nor can I say how it will work
  89.               on the ARM250 based machines.
  90.  
  91. F1-F12      : Choose one of twelve preset complex constants
  92.               (these are the ones from page XII of 'The Beauty of Fractals').
  93.  
  94. Home        : Return to the initial complex constant c=-0.08+0.66i.
  95.  
  96. Copy        : Redraw the image with the current complex constant c.
  97.  
  98. Esc         : Quit the program.
  99.  
  100.  
  101. In addition the following keys can be used only during keyboard control:
  102.  
  103. Cursor keys : Changes the complex constant c in steps of 0.01
  104.               (when Shift is held down the steps are 0.05 but when Ctrl is
  105.                held down (without Shift) the steps are only 0.001 and the
  106.                number of frames per second is lower - incidentally Ctrl
  107.                also decreases the frame rate during mouse control).
  108.  
  109.  
  110. This program is not very accurate and it would not be well suited for
  111. zooming into the images. Because of that the display is fixed to a part of
  112. the complex plane with real values ranging from -2 to 2 and imaginary values
  113. ranging from -1.6 to 1.6. This is not as bad as it may sound because Julia
  114. sets do not increase in complexity when you magnify them and unlike the
  115. Mandelbrot set will usually display all their unique features on the
  116. macroscopic level.
  117.  
  118. For complex constants with a large magnitude (distance from 0+0i) the code
  119. will give an address exception error (due to overflow). To avoid this the
  120. program will not allow the absolute values of the real and imaginary parts
  121. of c to exceed 3.5. This is of no great significance, as very few Julia sets
  122. with values of c outside this range would be contained by the screen. The
  123. mouse pointer can move off the screen to allow the exploration of complex
  124. constants to the limits.
  125.  
  126. The orbits are quite easy to calculate but are even more sensitive to errors
  127. in the calculations due to the nature of normal forward iteration (inverse
  128. iteration is attracted to the correct set and thus small errors will
  129. eventually be 'forgotten' while forward iteration as used for the orbits
  130. moves away from whatever set you want to find and thereby enlarges any
  131. errors that occur) and are therefore not quite reliable (at least I don't
  132. think so) but they are pretty anyway.
  133.  
  134.  
  135. What can quadratic Julia sets be used for:
  136.  
  137. Quadratic Julia sets are based on the quadratic formula:
  138.  
  139. z(n+1)=z(n)^2+c, where c is a constant for a specific Julia set.
  140.  
  141. Both c and z(n) are complex numbers, which implies that they consist of a
  142. real part and an imaginary part (which is a real number multiplied by the
  143. imaginary unit i, which is the square root of -1). Complex numbers were
  144. invented a long time ago in order to solve some mathematical problems, or
  145. something like that, and they have since then been applied to many parts of
  146. science (they are useful in treating electric circuitry and necessary in
  147. quantum mechanics).
  148.  
  149. The Julia set then consists of all the points z(0) for which the series z(n)
  150. stays confined within a finite area for all values of n. It is hard to see
  151. any immediate connection between this and the real world, but in mathematics
  152. it can be very useful to explore a fairly simple formula to gain knowledge
  153. about it and then use this knowledge on more complicated problems.
  154. Furthermore it is common practice (e.g. in physics) to reduce a complicated
  155. problem to something simpler to be able to solve it, and a quadratic formula
  156. is a very common example of a simple but good approximation to a more
  157. complicated description. In my view none of this really matters as the
  158. beauty of the sets should be sufficient justification for making them.
  159.  
  160.  
  161. What to look for - and what not to look for:
  162.  
  163. Primarily you should look for a lot of pretty images and sequences of
  164. images. However there are a few things that are worth noticing as they
  165. actually have something to do with the mathematics behind the sets.
  166.  
  167. Playing around with the program (I hope you have done so by now) you may
  168. have noticed, that some Julia sets seem to be a single connected set while
  169. others seem to consist of a few large pieces, and some seem to consist of
  170. many small pieces. It turns out, when investigating the sets theoretically,
  171. that the quadratic Julia sets can be divided into just two categories: Those
  172. that are