Home » Archimedes archive » Micro User » MU 1992-05.adf » PD » Julia/!JuliaAnim/!Help

Julia/!JuliaAnim/!Help

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Micro User » MU 1992-05.adf » PD
Filename: Julia/!JuliaAnim/!Help
Read OK:
File size: 1E06 bytes
Load address: 0000
Exec address: 0000
File contents
!JuliaAnim v1.10: Quadratic Julia Set Real Time Animator.

By Ivar Wind Skovgaard.

This version finished Wed,12 Feb 1992.


Introduction:

This !Help file is not supposed to explain what fractals, Julia sets and complex numbers are. For those who don't know this I suggest they read a book on the subject. However the program can be used by everybody to see some animated sequences of Julia sets.

!JuliaAnim displays quadratic Julia sets and uses the inverse iteration method to allow you to explore the effects of different complex constants in the formula in 'real time'.

By moving the mouse or using the cursor keys you can change the complex constant in the expression for the Julia sets and (because of the speed of the inverse iteration method as well ARM machine code) immediately see the shape of the set change on the screen (which is what I call 'real time').


Using the program:

Double-clicking on the !JuliaAnim icon will start !JuliaAnim, which takes over all the processing time of the machine (except for interrupts).

The program is controlled from the keyboard or the mouse. Initially the mouse is selected for control and by moving it you change the complex constant c shown at the bottom of the screen. During mouse control only three keys can be used:

M           : Toggles between mouse and keyboard control.
P           : Toggles mouse pointer on and off
              (the pointer is only shown during mouse control).
Esc         : Quit the program.

In addition the following keys can be used during keyboard control:

Cursor keys : Changes the complex constant c in steps of 0.01
              (when Shift is held down the steps are 0.05
               but when Ctrl is held down (without Shift) the steps are only
               0.001 and the number of frames per second is lower)
Home        : Return to initial complex constant (-0.75+0.5i).
Copy        : Redraw with current complex constant.
F1-F12      : Choose one of twelve preset complex constants
              (these are the ones from page XII of 'The Beauty of Fractals').
A           : Toggles automatic animation on and off
              (during automatic animation the complex constant is made to
               follow the edge of the cardioid and the greatest circle of
               the Mandelbrot set).
R           : Toggles random automatic animation on and off
              (during random automatic animation the complex constant moves
               in a direction which changes randomly).

This program is not very accurate and it would not be well suited for zooming into the images. Because of that the display is fixed to a part of the complex plane with real values ranging from -2 to 2 and imaginary values ranging from -1.6 to 1.6. This is not as bad as it may sound because Julia sets do not increase in complexity when you magnify them and unlike the Mandelbrot set will usually display all their unique features on the macroscopic level.

For some special values of the complex constant the images are not even correct at the macroscopic scale. In these images the actual Julia set can be seen but in addition there are some points outside the Julia set where there should be no points. This happens in particular for complex constants with real part close or equal to zero and may be because of inaccuracies introduced by tabulating the trigonometric functions used. Also for complex constants with a magnitude (distance from 0+0i) greater than two the images will usually be incorrect because of overflow in the calculations.


Additional information:

The program is based on the quadratic formula x(n+1)=x(n)^2+c, where x and c are complex numbers, however it uses the inverse iteration method to find points on the edge of the Julia sets. This method is described in 'The Beauty of Fractals' by H.-O. Peitgen and P.H. Richter.

The inverse iteration method actually does the iteration the other way round: x(n+1)=SQR(x(n)-c). This is not as easy as it looks because x and c are complex numbers and the calculation of the square root of a complex number requires the calculation of two normal square roots, one arcus tangens, one sine, one cosine, one division (actually two but one of these is simply division by two which the ARM can do in zero instructions!), four multiplications, one addition and in 50% of the iterations an extra addition and two extra subtractions. The trigonometric functions are done by table lookups (the arcus tangens is done by a simple table lookup and the sines and cosines are done by a more advanced table lookup written by Christian Larsen) but the rest is done by 32-bit integer calculations. After a few initial iterations all the x's calculated can be plotted.

The points are plotted (by direct screen access) both in the position of the actual x value but also mirrored around 0+0i at -x because Julia sets are symmetric around 0+0i.

Due to the speed of the ARM the program plots approximately 8750 points per second (including the mirrored ones) during manual animation (12.5 frames per second), 10000 points per second during automatic animation (10 frames per second) and 9750 points per second during random automatic animation (12.5 frames per second). However if you don't change the constant but let the program go on with the same set the speed increases to approximately 10200-10500 points per second depending on whether it is under keyboard or mouse control (the latter is fastest). If the machine code is allowed to plot a very large number of points before returning to basic it can actually do more than 11200 points per second, but that is not possible with the current control program.


Future improvements:

If I ever learn how to write a proper multi-tasking application I might turn this program into one, however it is much more likely that I make it possible to see a picture of the Mandelbrot set in the background with an indication of where the current complex constant is located, and I have also thought of implementing user-defined automatic animations as well as a facility for (slowly) creating high quality still images of Julia sets.


Distribution:

This program is Public Domain! You may copy it freely (and please do) as long as you do not sell it for a profit (PD-libraries are naturally allowed to cover their costs) or include it with a product that is sold for a profit (without my permission - 'The Micro User' is allowed to use this version on their cover disc) and as long as you do not change or delete any of the original files which are:

                                        !JuliaAnim (not really a file),
                                        !JuliaAnim.!Boot,
                                        !JuliaAnim.!Help (this file),
                                        !JuliaAnim.!Run,
                                        !JuliaAnim.!RunImage,
                                        !JuliaAnim.!Sprites,
                                        !JuliaAnim.mc and
                                        !JuliaAnim.MemAlloc

If MemAlloc is missing then you can just copy it from the !Lander application on the App2 disc (at least that's where it is in my version of RiscOS).


Finally:

If you have any suggestions for improvements to this program or have written some interesting fractal program yourself which you want to tell me about or just want to tell me what a great program you think !JuliaAnim is then you can contact me by writing to:

                                        Ivar Wind Skovgaard,
                                        Havsg�rdsvej 27,
                                        2900 Hellerup,
                                        Denmark.
00000000  0a 21 4a 75 6c 69 61 41  6e 69 6d 20 76 31 2e 31  |.!JuliaAnim v1.1|
00000010  30 3a 20 51 75 61 64 72  61 74 69 63 20 4a 75 6c  |0: Quadratic Jul|
00000020  69 61 20 53 65 74 20 52  65 61 6c 20 54 69 6d 65  |ia Set Real Time|
00000030  20 41 6e 69 6d 61 74 6f  72 2e 0a 0a 42 79 20 49  | Animator...By I|
00000040  76 61 72 20 57 69 6e 64  20 53 6b 6f 76 67 61 61  |var Wind Skovgaa|
00000050  72 64 2e 0a 0a 54 68 69  73 20 76 65 72 73 69 6f  |rd...This versio|
00000060  6e 20 66 69 6e 69 73 68  65 64 20 57 65 64 2c 31  |n finished Wed,1|
00000070  32 20 46 65 62 20 31 39  39 32 2e 0a 0a 0a 49 6e  |2 Feb 1992....In|
00000080  74 72 6f 64 75 63 74 69  6f 6e 3a 0a 0a 54 68 69  |troduction:..Thi|
00000090  73 20 21 48 65 6c 70 20  66 69 6c 65 20 69 73 20  |s !Help file is |
000000a0  6e 6f 74 20 73 75 70 70  6f 73 65 64 20 74 6f 20  |not supposed to |
000000b0  65 78 70 6c 61 69 6e 20  77 68 61 74 20 66 72 61  |explain what fra|
000000c0  63 74 61 6c 73 2c 20 4a  75 6c 69 61 20 73 65 74  |ctals, Julia set|
000000d0  73 20 61 6e 64 20 63 6f  6d 70 6c 65 78 20 6e 75  |s and complex nu|
000000e0  6d 62 65 72 73 20 61 72  65 2e 20 46 6f 72 20 74  |mbers are. For t|
000000f0  68 6f 73 65 20 77 68 6f  20 64 6f 6e 27 74 20 6b  |hose who don't k|
00000100  6e 6f 77 20 74 68 69 73  20 49 20 73 75 67 67 65  |now this I sugge|
00000110  73 74 20 74 68 65 79 20  72 65 61 64 20 61 20 62  |st they read a b|
00000120  6f 6f 6b 20 6f 6e 20 74  68 65 20 73 75 62 6a 65  |ook on the subje|
00000130  63 74 2e 20 48 6f 77 65  76 65 72 20 74 68 65 20  |ct. However the |
00000140  70 72 6f 67 72 61 6d 20  63 61 6e 20 62 65 20 75  |program can be u|
00000150  73 65 64 20 62 79 20 65  76 65 72 79 62 6f 64 79  |sed by everybody|
00000160  20 74 6f 20 73 65 65 20  73 6f 6d 65 20 61 6e 69  | to see some ani|
00000170  6d 61 74 65 64 20 73 65  71 75 65 6e 63 65 73 20  |mated sequences |
00000180  6f 66 20 4a 75 6c 69 61  20 73 65 74 73 2e 0a 0a  |of Julia sets...|
00000190  21 4a 75 6c 69 61 41 6e  69 6d 20 64 69 73 70 6c  |!JuliaAnim displ|
000001a0  61 79 73 20 71 75 61 64  72 61 74 69 63 20 4a 75  |ays quadratic Ju|
000001b0  6c 69 61 20 73 65 74 73  20 61 6e 64 20 75 73 65  |lia sets and use|
000001c0  73 20 74 68 65 20 69 6e  76 65 72 73 65 20 69 74  |s the inverse it|
000001d0  65 72 61 74 69 6f 6e 20  6d 65 74 68 6f 64 20 74  |eration method t|
000001e0  6f 20 61 6c 6c 6f 77 20  79 6f 75 20 74 6f 20 65  |o allow you to e|
000001f0  78 70 6c 6f 72 65 20 74  68 65 20 65 66 66 65 63  |xplore the effec|
00000200  74 73 20 6f 66 20 64 69  66 66 65 72 65 6e 74 20  |ts of different |
00000210  63 6f 6d 70 6c 65 78 20  63 6f 6e 73 74 61 6e 74  |complex constant|
00000220  73 20 69 6e 20 74 68 65  20 66 6f 72 6d 75 6c 61  |s in the formula|
00000230  20 69 6e 20 27 72 65 61  6c 20 74 69 6d 65 27 2e  | in 'real time'.|
00000240  0a 0a 42 79 20 6d 6f 76  69 6e 67 20 74 68 65 20  |..By moving the |
00000250  6d 6f 75 73 65 20 6f 72  20 75 73 69 6e 67 20 74  |mouse or using t|
00000260  68 65 20 63 75 72 73 6f  72 20 6b 65 79 73 20 79  |he cursor keys y|
00000270  6f 75 20 63 61 6e 20 63  68 61 6e 67 65 20 74 68  |ou can change th|
00000280  65 20 63 6f 6d 70 6c 65  78 20 63 6f 6e 73 74 61  |e complex consta|
00000290  6e 74 20 69 6e 20 74 68  65 20 65 78 70 72 65 73  |nt in the expres|
000002a0  73 69 6f 6e 20 66 6f 72  20 74 68 65 20 4a 75 6c  |sion for the Jul|
000002b0  69 61 20 73 65 74 73 20  61 6e 64 20 28 62 65 63  |ia sets and (bec|
000002c0  61 75 73 65 20 6f 66 20  74 68 65 20 73 70 65 65  |ause of the spee|
000002d0  64 20 6f 66 20 74 68 65  20 69 6e 76 65 72 73 65  |d of the inverse|
000002e0  20 69 74 65 72 61 74 69  6f 6e 20 6d 65 74 68 6f  | iteration metho|
000002f0  64 20 61 73 20 77 65 6c  6c 20 41 52 4d 20 6d 61  |d as well ARM ma|
00000300  63 68 69 6e 65 20 63 6f  64 65 29 20 69 6d 6d 65  |chine code) imme|
00000310  64 69 61 74 65 6c 79 20  73 65 65 20 74 68 65 20  |diately see the |
00000320  73 68 61 70 65 20 6f 66  20 74 68 65 20 73 65 74  |shape of the set|
00000330  20 63 68 61 6e 67 65 20  6f 6e 20 74 68 65 20 73  | change on the s|
00000340  63 72 65 65 6e 20 28 77  68 69 63 68 20 69 73 20  |creen (which is |
00000350  77 68 61 74 20 49 20 63  61 6c 6c 20 27 72 65 61  |what I call 'rea|
00000360  6c 20 74 69 6d 65 27 29  2e 0a 0a 0a 55 73 69 6e  |l time')....Usin|
00000370  67 20 74 68 65 20 70 72  6f 67 72 61 6d 3a 0a 0a  |g the program:..|
00000380  44 6f 75 62 6c 65 2d 63  6c 69 63 6b 69 6e 67 20  |Double-clicking |
00000390  6f 6e 20 74 68 65 20 21  4a 75 6c 69 61 41 6e 69  |on the !JuliaAni|
000003a0  6d 20 69 63 6f 6e 20 77  69 6c 6c 20 73 74 61 72  |m icon will star|
000003b0  74 20 21 4a 75 6c 69 61  41 6e 69 6d 2c 20 77 68  |t !JuliaAnim, wh|
000003c0  69 63 68 20 74 61 6b 65  73 20 6f 76 65 72 20 61  |ich takes over a|
000003d0  6c 6c 20 74 68 65 20 70  72 6f 63 65 73 73 69 6e  |ll the processin|
000003e0  67 20 74 69 6d 65 20 6f  66 20 74 68 65 20 6d 61  |g time of the ma|
000003f0  63 68 69 6e 65 20 28 65  78 63 65 70 74 20 66 6f  |chine (except fo|
00000400  72 20 69 6e 74 65 72 72  75 70 74 73 29 2e 0a 0a  |r interrupts)...|
00000410  54 68 65 20 70 72 6f 67  72 61 6d 20 69 73 20 63  |The program is c|
00000420  6f 6e 74 72 6f 6c 6c 65  64 20 66 72 6f 6d 20 74  |ontrolled from t|
00000430  68 65 20 6b 65 79 62 6f  61 72 64 20 6f 72 20 74  |he keyboard or t|
00000440  68 65 20 6d 6f 75 73 65  2e 20 49 6e 69 74 69 61  |he mouse. Initia|
00000450  6c 6c 79 20 74 68 65 20  6d 6f 75 73 65 20 69 73  |lly the mouse is|
00000460  20 73 65 6c 65 63 74 65  64 20 66 6f 72 20 63 6f  | selected for co|
00000470  6e 74 72 6f 6c 20 61 6e  64 20 62 79 20 6d 6f 76  |ntrol and by mov|
00000480  69 6e 67 20 69 74 20 79  6f 75 20 63 68 61 6e 67  |ing it you chang|
00000490  65 20 74 68 65 20 63 6f  6d 70 6c 65 78 20 63 6f  |e the complex co|
000004a0  6e 73 74 61 6e 74 20 63  20 73 68 6f 77 6e 20 61  |nstant c shown a|
000004b0  74 20 74 68 65 20 62 6f  74 74 6f 6d 20 6f 66 20  |t the bottom of |
000004c0  74 68 65 20 73 63 72 65  65 6e 2e 20 44 75 72 69  |the screen. Duri|
000004d0  6e 67 20 6d 6f 75 73 65  20 63 6f 6e 74 72 6f 6c  |ng mouse control|
000004e0  20 6f 6e 6c 79 20 74 68  72 65 65 20 6b 65 79 73  | only three keys|
000004f0  20 63 61 6e 20 62 65 20  75 73 65 64 3a 0a 0a 4d  | can be used:..M|
00000500  20 20 20 20 20 20 20 20  20 20 20 3a 20 54 6f 67  |           : Tog|
00000510  67 6c 65 73 20 62 65 74  77 65 65 6e 20 6d 6f 75  |gles between mou|
00000520  73 65 20 61 6e 64 20 6b  65 79 62 6f 61 72 64 20  |se and keyboard |
00000530  63 6f 6e 74 72 6f 6c 2e  0a 50 20 20 20 20 20 20  |control..P      |
00000540  20 20 20 20 20 3a 20 54  6f 67 67 6c 65 73 20 6d  |     : Toggles m|
00000550  6f 75 73 65 20 70 6f 69  6e 74 65 72 20 6f 6e 20  |ouse pointer on |
00000560  61 6e 64 20 6f 66 66 0a  20 20 20 20 20 20 20 20  |and off.        |
00000570  20 20 20 20 20 20 28 74  68 65 20 70 6f 69 6e 74  |      (the point|
00000580  65 72 20 69 73 20 6f 6e  6c 79 20 73 68 6f 77 6e  |er is only shown|
00000590  20 64 75 72 69 6e 67 20  6d 6f 75 73 65 20 63 6f  | during mouse co|
000005a0  6e 74 72 6f 6c 29 2e 0a  45 73 63 20 20 20 20 20  |ntrol)..Esc     |
000005b0  20 20 20 20 3a 20 51 75  69 74 20 74 68 65 20 70  |    : Quit the p|
000005c0  72 6f 67 72 61 6d 2e 0a  0a 49 6e 20 61 64 64 69  |rogram...In addi|
000005d0  74 69 6f 6e 20 74 68 65  20 66 6f 6c 6c 6f 77 69  |tion the followi|
000005e0  6e 67 20 6b 65 79 73 20  63 61 6e 20 62 65 20 75  |ng keys can be u|
000005f0  73 65 64 20 64 75 72 69  6e 67 20 6b 65 79 62 6f  |sed during keybo|
00000600  61 72 64 20 63 6f 6e 74  72 6f 6c 3a 0a 0a 43 75  |ard control:..Cu|
00000610  72 73 6f 72 20 6b 65 79  73 20 3a 20 43 68 61 6e  |rsor keys : Chan|
00000620  67 65 73 20 74 68 65 20  63 6f 6d 70 6c 65 78 20  |ges the complex |
00000630  63 6f 6e 73 74 61 6e 74  20 63 20 69 6e 20 73 74  |constant c in st|
00000640  65 70 73 20 6f 66 20 30  2e 30 31 0a 20 20 20 20  |eps of 0.01.    |
00000650  20 20 20 20 20 20 20 20  20 20 28 77 68 65 6e 20  |          (when |
00000660  53 68 69 66 74 20 69 73  20 68 65 6c 64 20 64 6f  |Shift is held do|
00000670  77 6e 20 74 68 65 20 73  74 65 70 73 20 61 72 65  |wn the steps are|
00000680  20 30 2e 30 35 0a 20 20  20 20 20 20 20 20 20 20  | 0.05.          |
00000690  20 20 20 20 20 62 75 74  20 77 68 65 6e 20 43 74  |     but when Ct|
000006a0  72 6c 20 69 73 20 68 65  6c 64 20 64 6f 77 6e 20  |rl is held down |
000006b0  28 77 69 74 68 6f 75 74  20 53 68 69 66 74 29 20  |(without Shift) |
000006c0  74 68 65 20 73 74 65 70  73 20 61 72 65 20 6f 6e  |the steps are on|
000006d0  6c 79 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |ly.             |
000006e0  20 20 30 2e 30 30 31 20  61 6e 64 20 74 68 65 20  |  0.001 and the |
000006f0  6e 75 6d 62 65 72 20 6f  66 20 66 72 61 6d 65 73  |number of frames|
00000700  20 70 65 72 20 73 65 63  6f 6e 64 20 69 73 20 6c  | per second is l|
00000710  6f 77 65 72 29 0a 48 6f  6d 65 20 20 20 20 20 20  |ower).Home      |
00000720  20 20 3a 20 52 65 74 75  72 6e 20 74 6f 20 69 6e  |  : Return to in|
00000730  69 74 69 61 6c 20 63 6f  6d 70 6c 65 78 20 63 6f  |itial complex co|
00000740  6e 73 74 61 6e 74 20 28  2d 30 2e 37 35 2b 30 2e  |nstant (-0.75+0.|
00000750  35 69 29 2e 0a 43 6f 70  79 20 20 20 20 20 20 20  |5i)..Copy       |
00000760  20 3a 20 52 65 64 72 61  77 20 77 69 74 68 20 63  | : Redraw with c|
00000770  75 72 72 65 6e 74 20 63  6f 6d 70 6c 65 78 20 63  |urrent complex c|
00000780  6f 6e 73 74 61 6e 74 2e  0a 46 31 2d 46 31 32 20  |onstant..F1-F12 |
00000790  20 20 20 20 20 3a 20 43  68 6f 6f 73 65 20 6f 6e  |     : Choose on|
000007a0  65 20 6f 66 20 74 77 65  6c 76 65 20 70 72 65 73  |e of twelve pres|
000007b0  65 74 20 63 6f 6d 70 6c  65 78 20 63 6f 6e 73 74  |et complex const|
000007c0  61 6e 74 73 0a 20 20 20  20 20 20 20 20 20 20 20  |ants.           |
000007d0  20 20 20 28 74 68 65 73  65 20 61 72 65 20 74 68  |   (these are th|
000007e0  65 20 6f 6e 65 73 20 66  72 6f 6d 20 70 61 67 65  |e ones from page|
000007f0  20 58 49 49 20 6f 66 20  27 54 68 65 20 42 65 61  | XII of 'The Bea|
00000800  75 74 79 20 6f 66 20 46  72 61 63 74 61 6c 73 27  |uty of Fractals'|
00000810  29 2e 0a 41 20 20 20 20  20 20 20 20 20 20 20 3a  |)..A           :|
00000820  20 54 6f 67 67 6c 65 73  20 61 75 74 6f 6d 61 74  | Toggles automat|
00000830  69 63 20 61 6e 69 6d 61  74 69 6f 6e 20 6f 6e 20  |ic animation on |
00000840  61 6e 64 20 6f 66 66 0a  20 20 20 20 20 20 20 20  |and off.        |
00000850  20 20 20 20 20 20 28 64  75 72 69 6e 67 20 61 75  |      (during au|
00000860  74 6f 6d 61 74 69 63 20  61 6e 69 6d 61 74 69 6f  |tomatic animatio|
00000870  6e 20 74 68 65 20 63 6f  6d 70 6c 65 78 20 63 6f  |n the complex co|
00000880  6e 73 74 61 6e 74 20 69  73 20 6d 61 64 65 20 74  |nstant is made t|
00000890  6f 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |o.              |
000008a0  20 66 6f 6c 6c 6f 77 20  74 68 65 20 65 64 67 65  | follow the edge|
000008b0  20 6f 66 20 74 68 65 20  63 61 72 64 69 6f 69 64  | of the cardioid|
000008c0  20 61 6e 64 20 74 68 65  20 67 72 65 61 74 65 73  | and the greates|
000008d0  74 20 63 69 72 63 6c 65  20 6f 66 0a 20 20 20 20  |t circle of.    |
000008e0  20 20 20 20 20 20 20 20  20 20 20 74 68 65 20 4d  |           the M|
000008f0  61 6e 64 65 6c 62 72 6f  74 20 73 65 74 29 2e 0a  |andelbrot set)..|
00000900  52 20 20 20 20 20 20 20  20 20 20 20 3a 20 54 6f  |R           : To|
00000910  67 67 6c 65 73 20 72 61  6e 64 6f 6d 20 61 75 74  |ggles random aut|
00000920  6f 6d 61 74 69 63 20 61  6e 69 6d 61 74 69 6f 6e  |omatic animation|
00000930  20 6f 6e 20 61 6e 64 20  6f 66 66 0a 20 20 20 20  | on and off.    |
00000940  20 20 20 20 20 20 20 20  20 20 28 64 75 72 69 6e  |          (durin|
00000950  67 20 72 61 6e 64 6f 6d  20 61 75 74 6f 6d 61 74  |g random automat|
00000960  69 63 20 61 6e 69 6d 61  74 69 6f 6e 20 74 68 65  |ic animation the|
00000970  20 63 6f 6d 70 6c 65 78  20 63 6f 6e 73 74 61 6e  | complex constan|
00000980  74 20 6d 6f 76 65 73 0a  20 20 20 20 20 20 20 20  |t moves.        |
00000990  20 20 20 20 20 20 20 69  6e 20 61 20 64 69 72 65  |       in a dire|
000009a0  63 74 69 6f 6e 20 77 68  69 63 68 20 63 68 61 6e  |ction which chan|
000009b0  67 65 73 20 72 61 6e 64  6f 6d 6c 79 29 2e 0a 0a  |ges randomly)...|
000009c0  54 68 69 73 20 70 72 6f  67 72 61 6d 20 69 73 20  |This program is |
000009d0  6e 6f 74 20 76 65 72 79  20 61 63 63 75 72 61 74  |not very accurat|
000009e0  65 20 61 6e 64 20 69 74  20 77 6f 75 6c 64 20 6e  |e and it would n|
000009f0  6f 74 20 62 65 20 77 65  6c 6c 20 73 75 69 74 65  |ot be well suite|
00000a00  64 20 66 6f 72 20 7a 6f  6f 6d 69 6e 67 20 69 6e  |d for zooming in|
00000a10  74 6f 20 74 68 65 20 69  6d 61 67 65 73 2e 20 42  |to the images. B|
00000a20  65 63 61 75 73 65 20 6f  66 20 74 68 61 74 20 74  |ecause of that t|
00000a30  68 65 20 64 69 73 70 6c  61 79 20 69 73 20 66 69  |he display is fi|
00000a40  78 65 64 20 74 6f 20 61  20 70 61 72 74 20 6f 66  |xed to a part of|
00000a50  20 74 68 65 20 63 6f 6d  70 6c 65 78 20 70 6c 61  | the complex pla|
00000a60  6e 65 20 77 69 74 68 20  72 65 61 6c 20 76 61 6c  |ne with real val|
00000a70  75 65 73 20 72 61 6e 67  69 6e 67 20 66 72 6f 6d  |ues ranging from|
00000a80  20 2d 32 20 74 6f 20 32  20 61 6e 64 20 69 6d 61  | -2 to 2 and ima|
00000a90  67 69 6e 61 72 79 20 76  61 6c 75 65 73 20 72 61  |ginary values ra|
00000aa0  6e 67 69 6e 67 20 66 72  6f 6d 20 2d 31 2e 36 20  |nging from -1.6 |
00000ab0  74 6f 20 31 2e 36 2e 20  54 68 69 73 20 69 73 20  |to 1.6. This is |
00000ac0  6e 6f 74 20 61 73 20 62  61 64 20 61 73 20 69 74  |not as bad as it|
00000ad0  20 6d 61 79 20 73 6f 75  6e 64 20 62 65 63 61 75  | may sound becau|
00000ae0  73 65 20 4a 75 6c 69 61  20 73 65 74 73 20 64 6f  |se Julia sets do|
00000af0  20 6e 6f 74 20 69 6e 63  72 65 61 73 65 20 69 6e  | not increase in|
00000b00  20 63 6f 6d 70 6c 65 78  69 74 79 20 77 68 65 6e  | complexity when|
00000b10  20 79 6f 75 20 6d 61 67  6e 69 66 79 20 74 68 65  | you magnify the|
00000b20  6d 20 61 6e 64 20 75 6e  6c 69 6b 65 20 74 68 65  |m and unlike the|
00000b30  20 4d 61 6e 64 65 6c 62  72 6f 74 20 73 65 74 20  | Mandelbrot set |
00000b40  77 69 6c 6c 20 75 73 75  61 6c 6c 79 20 64 69 73  |will usually dis|
00000b50  70 6c 61 79 20 61 6c 6c  20 74 68 65 69 72 20 75  |play all their u|
00000b60  6e 69 71 75 65 20 66 65  61 74 75 72 65 73 20 6f  |nique features o|
00000b70  6e 20 74 68 65 20 6d 61  63 72 6f 73 63 6f 70 69  |n the macroscopi|
00000b80  63 20 6c 65 76 65 6c 2e  0a 0a 46 6f 72 20 73 6f  |c level...For so|
00000b90  6d 65 20 73 70 65 63 69  61 6c 20 76 61 6c 75 65  |me special value|
00000ba0  73 20 6f 66 20 74 68 65  20 63 6f 6d 70 6c 65 78  |s of the complex|
00000bb0  20 63 6f 6e 73 74 61 6e  74 20 74 68 65 20 69 6d  | constant the im|
00000bc0  61 67 65 73 20 61 72 65  20 6e 6f 74 20 65 76 65  |ages are not eve|
00000bd0  6e 20 63 6f 72 72 65 63  74 20 61 74 20 74 68 65  |n correct at the|
00000be0  20 6d 61 63 72 6f 73 63  6f 70 69 63 20 73 63 61  | macroscopic sca|
00000bf0  6c 65 2e 20 49 6e 20 74  68 65 73 65 20 69 6d 61  |le. In these ima|
00000c00  67 65 73 20 74 68 65 20  61 63 74 75 61 6c 20 4a  |ges the actual J|
00000c10  75 6c 69 61 20 73 65 74  20 63 61 6e 20 62 65 20  |ulia set can be |
00000c20  73 65 65 6e 20 62 75 74  20 69 6e 20 61 64 64 69  |seen but in addi|
00000c30  74 69 6f 6e 20 74 68 65  72 65 20 61 72 65 20 73  |tion there are s|
00000c40  6f 6d 65 20 70 6f 69 6e  74 73 20 6f 75 74 73 69  |ome points outsi|
00000c50  64 65 20 74 68 65 20 4a  75 6c 69 61 20 73 65 74  |de the Julia set|
00000c60  20 77 68 65 72 65 20 74  68 65 72 65 20 73 68 6f  | where there sho|
00000c70  75 6c 64 20 62 65 20 6e  6f 20 70 6f 69 6e 74 73  |uld be no points|
00000c80  2e 20 54 68 69 73 20 68  61 70 70 65 6e 73 20 69  |. This happens i|
00000c90  6e 20 70 61 72 74 69 63  75 6c 61 72 20 66 6f 72  |n particular for|
00000ca0  20 63 6f 6d 70 6c 65 78  20 63 6f 6e 73 74 61 6e  | complex constan|
00000cb0  74 73 20 77 69 74 68 20  72 65 61 6c 20 70 61 72  |ts with real par|
00000cc0  74 20 63 6c 6f 73 65 20  6f 72 20 65 71 75 61 6c  |t close or equal|
00000cd0  20 74 6f 20 7a 65 72 6f  20 61 6e 64 20 6d 61 79  | to zero and may|
00000ce0  20 62 65 20 62 65 63 61  75 73 65 20 6f 66 20 69  | be because of i|
00000cf0  6e 61 63 63 75 72 61 63  69 65 73 20 69 6e 74 72  |naccuracies intr|
00000d00  6f 64 75 63 65 64 20 62  79 20 74 61 62 75 6c 61  |oduced by tabula|
00000d10  74 69 6e 67 20 74 68 65  20 74 72 69 67 6f 6e 6f  |ting the trigono|
00000d20  6d 65 74 72 69 63 20 66  75 6e 63 74 69 6f 6e 73  |metric functions|
00000d30  20 75 73 65 64 2e 20 41  6c 73 6f 20 66 6f 72 20  | used. Also for |
00000d40  63 6f 6d 70 6c 65 78 20  63 6f 6e 73 74 61 6e 74  |complex constant|
00000d50  73 20 77 69 74 68 20 61  20 6d 61 67 6e 69 74 75  |s with a magnitu|
00000d60  64 65 20 28 64 69 73 74  61 6e 63 65 20 66 72 6f  |de (distance fro|
00000d70  6d 20 30 2b 30 69 29 20  67 72 65 61 74 65 72 20  |m 0+0i) greater |
00000d80  74 68 61 6e 20 74 77 6f  20 74 68 65 20 69 6d 61  |than two the ima|
00000d90  67 65 73 20 77 69 6c 6c  20 75 73 75 61 6c 6c 79  |ges will usually|
00000da0  20 62 65 20 69 6e 63 6f  72 72 65 63 74 20 62 65  | be incorrect be|
00000db0  63 61 75 73 65 20 6f 66  20 6f 76 65 72 66 6c 6f  |cause of overflo|
00000dc0  77 20 69 6e 20 74 68 65  20 63 61 6c 63 75 6c 61  |w in the calcula|
00000dd0  74 69 6f 6e 73 2e 0a 0a  0a 41 64 64 69 74 69 6f  |tions....Additio|
00000de0  6e 61 6c 20 69 6e 66 6f  72 6d 61 74 69 6f 6e 3a  |nal information:|
00000df0  0a 0a 54 68 65 20 70 72  6f 67 72 61 6d 20 69 73  |..The program is|
00000e00  20 62 61 73 65 64 20 6f  6e 20 74 68 65 20 71 75  | based on the qu|
00000e10  61 64 72 61 74 69 63 20  66 6f 72 6d 75 6c 61 20  |adratic formula |
00000e20  78 28 6e 2b 31 29 3d 78  28 6e 29 5e 32 2b 63 2c  |x(n+1)=x(n)^2+c,|
00000e30  20 77 68 65 72 65 20 78  20 61 6e 64 20 63 20 61  | where x and c a|
00000e40  72 65 20 63 6f 6d 70 6c  65 78 20 6e 75 6d 62 65  |re complex numbe|
00000e50  72 73 2c 20 68 6f 77 65  76 65 72 20 69 74 20 75  |rs, however it u|
00000e60  73 65 73 20 74 68 65 20  69 6e 76 65 72 73 65 20  |ses the inverse |
00000e70  69 74 65 72 61 74 69 6f  6e 20 6d 65 74 68 6f 64  |iteration method|
00000e80  20 74 6f 20 66 69 6e 64  20 70 6f 69 6e 74 73 20  | to find points |
00000e90  6f 6e 20 74 68 65 20 65  64 67 65 20 6f 66 20 74  |on the edge of t|
00000ea0  68 65 20 4a 75 6c 69 61  20 73 65 74 73 2e 20 54  |he Julia sets. T|
00000eb0  68 69 73 20 6d 65 74 68  6f 64 20 69 73 20 64 65  |his method is de|
00000ec0  73 63 72 69 62 65 64 20  69 6e 20 27 54 68 65 20  |scribed in 'The |
00000ed0  42 65 61 75 74 79 20 6f  66 20 46 72 61 63 74 61  |Beauty of Fracta|
00000ee0  6c 73 27 20 62 79 20 48  2e 2d 4f 2e 20 50 65 69  |ls' by H.-O. Pei|
00000ef0  74 67 65 6e 20 61 6e 64  20 50 2e 48 2e 20 52 69  |tgen and P.H. Ri|
00000f00  63 68 74 65 72 2e 0a 0a  54 68 65 20 69 6e 76 65  |chter...The inve|
00000f10  72 73 65 20 69 74 65 72  61 74 69 6f 6e 20 6d 65  |rse iteration me|
00000f20  74 68 6f 64 20 61 63 74  75 61 6c 6c 79 20 64 6f  |thod actually do|
00000f30  65 73 20 74 68 65 20 69  74 65 72 61 74 69 6f 6e  |es the iteration|
00000f40  20 74 68 65 20 6f 74 68  65 72 20 77 61 79 20 72  | the other way r|
00000f50  6f 75 6e 64 3a 20 78 28  6e 2b 31 29 3d 53 51 52  |ound: x(n+1)=SQR|
00000f60  28 78 28 6e 29 2d 63 29  2e 20 54 68 69 73 20 69  |(x(n)-c). This i|
00000f70  73 20 6e 6f 74 20 61 73  20 65 61 73 79 20 61 73  |s not as easy as|
00000f80  20 69 74 20 6c 6f 6f 6b  73 20 62 65 63 61 75 73  | it looks becaus|
00000f90  65 20 78 20 61 6e 64 20  63 20 61 72 65 20 63 6f  |e x and c are co|
00000fa0  6d 70 6c 65 78 20 6e 75  6d 62 65 72 73 20 61 6e  |mplex numbers an|
00000fb0  64 20 74 68 65 20 63 61  6c 63 75 6c 61 74 69 6f  |d the calculatio|
00000fc0  6e 20 6f 66 20 74 68 65  20 73 71 75 61 72 65 20  |n of the square |
00000fd0  72 6f 6f 74 20 6f 66 20  61 20 63 6f 6d 70 6c 65  |root of a comple|
00000fe0  78 20 6e 75 6d 62 65 72  20 72 65 71 75 69 72 65  |x number require|
00000ff0  73 20 74 68 65 20 63 61  6c 63 75 6c 61 74 69 6f  |s the calculatio|
00001000  6e 20 6f 66 20 74 77 6f  20 6e 6f 72 6d 61 6c 20  |n of two normal |
00001010  73 71 75 61 72 65 20 72  6f 6f 74 73 2c 20 6f 6e  |square roots, on|
00001020  65 20 61 72 63 75 73 20  74 61 6e 67 65 6e 73 2c  |e arcus tangens,|
00001030  20 6f 6e 65 20 73 69 6e  65 2c 20 6f 6e 65 20 63  | one sine, one c|
00001040  6f 73 69 6e 65 2c 20 6f  6e 65 20 64 69 76 69 73  |osine, one divis|
00001050  69 6f 6e 20 28 61 63 74  75 61 6c 6c 79 20 74 77  |ion (actually tw|
00001060  6f 20 62 75 74 20 6f 6e  65 20 6f 66 20 74 68 65  |o but one of the|
00001070  73 65 20 69 73 20 73 69  6d 70 6c 79 20 64 69 76  |se is simply div|
00001080  69 73 69 6f 6e 20 62 79  20 74 77 6f 20 77 68 69  |ision by two whi|
00001090  63 68 20 74 68 65 20 41  52 4d 20 63 61 6e 20 64  |ch the ARM can d|
000010a0  6f 20 69 6e 20 7a 65 72  6f 20 69 6e 73 74 72 75  |o in zero instru|
000010b0  63 74 69 6f 6e 73 21 29  2c 20 66 6f 75 72 20 6d  |ctions!), four m|
000010c0  75 6c 74 69 70 6c 69 63  61 74 69 6f 6e 73 2c 20  |ultiplications, |
000010d0  6f 6e 65 20 61 64 64 69  74 69 6f 6e 20 61 6e 64  |one addition and|
000010e0  20 69 6e 20 35 30 25 20  6f 66 20 74 68 65 20 69  | in 50% of the i|
000010f0  74 65 72 61 74 69 6f 6e  73 20 61 6e 20 65 78 74  |terations an ext|
00001100  72 61 20 61 64 64 69 74  69 6f 6e 20 61 6e 64 20  |ra addition and |
00001110  74 77 6f 20 65 78 74 72  61 20 73 75 62 74 72 61  |two extra subtra|
00001120  63 74 69 6f 6e 73 2e 20  54 68 65 20 74 72 69 67  |ctions. The trig|
00001130  6f 6e 6f 6d 65 74 72 69  63 20 66 75 6e 63 74 69  |onometric functi|
00001140  6f 6e 73 20 61 72 65 20  64 6f 6e 65 20 62 79 20  |ons are done by |
00001150  74 61 62 6c 65 20 6c 6f  6f 6b 75 70 73 20 28 74  |table lookups (t|
00001160  68 65 20 61 72 63 75 73  20 74 61 6e 67 65 6e 73  |he arcus tangens|
00001170  20 69 73 20 64 6f 6e 65  20 62 79 20 61 20 73 69  | is done by a si|
00001180  6d 70 6c 65 20 74 61 62  6c 65 20 6c 6f 6f 6b 75  |mple table looku|
00001190  70 20 61 6e 64 20 74 68  65 20 73 69 6e 65 73 20  |p and the sines |
000011a0  61 6e 64 20 63 6f 73 69  6e 65 73 20 61 72 65 20  |and cosines are |
000011b0  64 6f 6e 65 20 62 79 20  61 20 6d 6f 72 65 20 61  |done by a more a|
000011c0  64 76 61 6e 63 65 64 20  74 61 62 6c 65 20 6c 6f  |dvanced table lo|
000011d0  6f 6b 75 70 20 77 72 69  74 74 65 6e 20 62 79 20  |okup written by |
000011e0  43 68 72 69 73 74 69 61  6e 20 4c 61 72 73 65 6e  |Christian Larsen|
000011f0  29 20 62 75 74 20 74 68  65 20 72 65 73 74 20 69  |) but the rest i|
00001200  73 20 64 6f 6e 65 20 62  79 20 33 32 2d 62 69 74  |s done by 32-bit|
00001210  20 69 6e 74 65 67 65 72  20 63 61 6c 63 75 6c 61  | integer calcula|
00001220  74 69 6f 6e 73 2e 20 41  66 74 65 72 20 61 20 66  |tions. After a f|
00001230  65 77 20 69 6e 69 74 69  61 6c 20 69 74 65 72 61  |ew initial itera|
00001240  74 69 6f 6e 73 20 61 6c  6c 20 74 68 65 20 78 27  |tions all the x'|
00001250  73 20 63 61 6c 63 75 6c  61 74 65 64 20 63 61 6e  |s calculated can|
00001260  20 62 65 20 70 6c 6f 74  74 65 64 2e 0a 0a 54 68  | be plotted...Th|
00001270  65 20 70 6f 69 6e 74 73  20 61 72 65 20 70 6c 6f  |e points are plo|
00001280  74 74 65 64 20 28 62 79  20 64 69 72 65 63 74 20  |tted (by direct |
00001290  73 63 72 65 65 6e 20 61  63 63 65 73 73 29 20 62  |screen access) b|
000012a0  6f 74 68 20 69 6e 20 74  68 65 20 70 6f 73 69 74  |oth in the posit|
000012b0  69 6f 6e 20 6f 66 20 74  68 65 20 61 63 74 75 61  |ion of the actua|
000012c0  6c 20 78 20 76 61 6c 75  65 20 62 75 74 20 61 6c  |l x value but al|
000012d0  73 6f 20 6d 69 72 72 6f  72 65 64 20 61 72 6f 75  |so mirrored arou|
000012e0  6e 64 20 30 2b 30 69 20  61 74 20 2d 78 20 62 65  |nd 0+0i at -x be|
000012f0  63 61 75 73 65 20 4a 75  6c 69 61 20 73 65 74 73  |cause Julia sets|
00001300  20 61 72 65 20 73 79 6d  6d 65 74 72 69 63 20 61  | are symmetric a|
00001310  72 6f 75 6e 64 20 30 2b  30 69 2e 0a 0a 44 75 65  |round 0+0i...Due|
00001320  20 74 6f 20 74 68 65 20  73 70 65 65 64 20 6f 66  | to the speed of|
00001330  20 74 68 65 20 41 52 4d  20 74 68 65 20 70 72 6f  | the ARM the pro|
00001340  67 72 61 6d 20 70 6c 6f  74 73 20 61 70 70 72 6f  |gram plots appro|
00001350  78 69 6d 61 74 65 6c 79  20 38 37 35 30 20 70 6f  |ximately 8750 po|
00001360  69 6e 74 73 20 70 65 72  20 73 65 63 6f 6e 64 20  |ints per second |
00001370  28 69 6e 63 6c 75 64 69  6e 67 20 74 68 65 20 6d  |(including the m|
00001380  69 72 72 6f 72 65 64 20  6f 6e 65 73 29 20 64 75  |irrored ones) du|
00001390  72 69 6e 67 20 6d 61 6e  75 61 6c 20 61 6e 69 6d  |ring manual anim|
000013a0  61 74 69 6f 6e 20 28 31  32 2e 35 20 66 72 61 6d  |ation (12.5 fram|
000013b0  65 73 20 70 65 72 20 73  65 63 6f 6e 64 29 2c 20  |es per second), |
000013c0  31 30 30 30 30 20 70 6f  69 6e 74 73 20 70 65 72  |10000 points per|
000013d0  20 73 65 63 6f 6e 64 20  64 75 72 69 6e 67 20 61  | second during a|
000013e0  75 74 6f 6d 61 74 69 63  20 61 6e 69 6d 61 74 69  |utomatic animati|
000013f0  6f 6e 20 28 31 30 20 66  72 61 6d 65 73 20 70 65  |on (10 frames pe|
00001400  72 20 73 65 63 6f 6e 64  29 20 61 6e 64 20 39 37  |r second) and 97|
00001410  35 30 20 70 6f 69 6e 74  73 20 70 65 72 20 73 65  |50 points per se|
00001420  63 6f 6e 64 20 64 75 72  69 6e 67 20 72 61 6e 64  |cond during rand|
00001430  6f 6d 20 61 75 74 6f 6d  61 74 69 63 20 61 6e 69  |om automatic ani|
00001440  6d 61 74 69 6f 6e 20 28  31 32 2e 35 20 66 72 61  |mation (12.5 fra|
00001450  6d 65 73 20 70 65 72 20  73 65 63 6f 6e 64 29 2e  |mes per second).|
00001460  20 48 6f 77 65 76 65 72  20 69 66 20 79 6f 75 20  | However if you |
00001470  64 6f 6e 27 74 20 63 68  61 6e 67 65 20 74 68 65  |don't change the|
00001480  20 63 6f 6e 73 74 61 6e  74 20 62 75 74 20 6c 65  | constant but le|
00001490  74 20 74 68 65 20 70 72  6f 67 72 61 6d 20 67 6f  |t the program go|
000014a0  20 6f 6e 20 77 69 74 68  20 74 68 65 20 73 61 6d  | on with the sam|
000014b0  65 20 73 65 74 20 74 68  65 20 73 70 65 65 64 20  |e set the speed |
000014c0  69 6e 63 72 65 61 73 65  73 20 74 6f 20 61 70 70  |increases to app|
000014d0  72 6f 78 69 6d 61 74 65  6c 79 20 31 30 32 30 30  |roximately 10200|
000014e0  2d 31 30 35 30 30 20 70  6f 69 6e 74 73 20 70 65  |-10500 points pe|
000014f0  72 20 73 65 63 6f 6e 64  20 64 65 70 65 6e 64 69  |r second dependi|
00001500  6e 67 20 6f 6e 20 77 68  65 74 68 65 72 20 69 74  |ng on whether it|
00001510  20 69 73 20 75 6e 64 65  72 20 6b 65 79 62 6f 61  | is under keyboa|
00001520  72 64 20 6f 72 20 6d 6f  75 73 65 20 63 6f 6e 74  |rd or mouse cont|
00001530  72 6f 6c 20 28 74 68 65  20 6c 61 74 74 65 72 20  |rol (the latter |
00001540  69 73 20 66 61 73 74 65  73 74 29 2e 20 49 66 20  |is fastest). If |
00001550  74 68 65 20 6d 61 63 68  69 6e 65 20 63 6f 64 65  |the machine code|
00001560  20 69 73 20 61 6c 6c 6f  77 65 64 20 74 6f 20 70  | is allowed to p|
00001570  6c 6f 74 20 61 20 76 65  72 79 20 6c 61 72 67 65  |lot a very large|
00001580  20 6e 75 6d 62 65 72 20  6f 66 20 70 6f 69 6e 74  | number of point|
00001590  73 20 62 65 66 6f 72 65  20 72 65 74 75 72 6e 69  |s before returni|
000015a0  6e 67 20 74 6f 20 62 61  73 69 63 20 69 74 20 63  |ng to basic it c|
000015b0  61 6e 20 61 63 74 75 61  6c 6c 79 20 64 6f 20 6d  |an actually do m|
000015c0  6f 72 65 20 74 68 61 6e  20 31 31 32 30 30 20 70  |ore than 11200 p|
000015d0  6f 69 6e 74 73 20 70 65  72 20 73 65 63 6f 6e 64  |oints per second|
000015e0  2c 20 62 75 74 20 74 68  61 74 20 69 73 20 6e 6f  |, but that is no|
000015f0  74 20 70 6f 73 73 69 62  6c 65 20 77 69 74 68 20  |t possible with |
00001600  74 68 65 20 63 75 72 72  65 6e 74 20 63 6f 6e 74  |the current cont|
00001610  72 6f 6c 20 70 72 6f 67  72 61 6d 2e 0a 0a 0a 46  |rol program....F|
00001620  75 74 75 72 65 20 69 6d  70 72 6f 76 65 6d 65 6e  |uture improvemen|
00001630  74 73 3a 0a 0a 49 66 20  49 20 65 76 65 72 20 6c  |ts:..If I ever l|
00001640  65 61 72 6e 20 68 6f 77  20 74 6f 20 77 72 69 74  |earn how to writ|
00001650  65 20 61 20 70 72 6f 70  65 72 20 6d 75 6c 74 69  |e a proper multi|
00001660  2d 74 61 73 6b 69 6e 67  20 61 70 70 6c 69 63 61  |-tasking applica|
00001670  74 69 6f 6e 20 49 20 6d  69 67 68 74 20 74 75 72  |tion I might tur|
00001680  6e 20 74 68 69 73 20 70  72 6f 67 72 61 6d 20 69  |n this program i|
00001690  6e 74 6f 20 6f 6e 65 2c  20 68 6f 77 65 76 65 72  |nto one, however|
000016a0  20 69 74 20 69 73 20 6d  75 63 68 20 6d 6f 72 65  | it is much more|
000016b0  20 6c 69 6b 65 6c 79 20  74 68 61 74 20 49 20 6d  | likely that I m|
000016c0  61 6b 65 20 69 74 20 70  6f 73 73 69 62 6c 65 20  |ake it possible |
000016d0  74 6f 20 73 65 65 20 61  20 70 69 63 74 75 72 65  |to see a picture|
000016e0  20 6f 66 20 74 68 65 20  4d 61 6e 64 65 6c 62 72  | of the Mandelbr|
000016f0  6f 74 20 73 65 74 20 69  6e 20 74 68 65 20 62 61  |ot set in the ba|
00001700  63 6b 67 72 6f 75 6e 64  20 77 69 74 68 20 61 6e  |ckground with an|
00001710  20 69 6e 64 69 63 61 74  69 6f 6e 20 6f 66 20 77  | indication of w|
00001720  68 65 72 65 20 74 68 65  20 63 75 72 72 65 6e 74  |here the current|
00001730  20 63 6f 6d 70 6c 65 78  20 63 6f 6e 73 74 61 6e  | complex constan|
00001740  74 20 69 73 20 6c 6f 63  61 74 65 64 2c 20 61 6e  |t is located, an|
00001750  64 20 49 20 68 61 76 65  20 61 6c 73 6f 20 74 68  |d I have also th|
00001760  6f 75 67 68 74 20 6f 66  20 69 6d 70 6c 65 6d 65  |ought of impleme|
00001770  6e 74 69 6e 67 20 75 73  65 72 2d 64 65 66 69 6e  |nting user-defin|
00001780  65 64 20 61 75 74 6f 6d  61 74 69 63 20 61 6e 69  |ed automatic ani|
00001790  6d 61 74 69 6f 6e 73 20  61 73 20 77 65 6c 6c 20  |mations as well |
000017a0  61 73 20 61 20 66 61 63  69 6c 69 74 79 20 66 6f  |as a facility fo|
000017b0  72 20 28 73 6c 6f 77 6c  79 29 20 63 72 65 61 74  |r (slowly) creat|
000017c0  69 6e 67 20 68 69 67 68  20 71 75 61 6c 69 74 79  |ing high quality|
000017d0  20 73 74 69 6c 6c 20 69  6d 61 67 65 73 20 6f 66  | still images of|
000017e0  20 4a 75 6c 69 61 20 73  65 74 73 2e 0a 0a 0a 44  | Julia sets....D|
000017f0  69 73 74 72 69 62 75 74  69 6f 6e 3a 0a 0a 54 68  |istribution:..Th|
00001800  69 73 20 70 72 6f 67 72  61 6d 20 69 73 20 50 75  |is program is Pu|
00001810  62 6c 69 63 20 44 6f 6d  61 69 6e 21 20 59 6f 75  |blic Domain! You|
00001820  20 6d 61 79 20 63 6f 70  79 20 69 74 20 66 72 65  | may copy it fre|
00001830  65 6c 79 20 28 61 6e 64  20 70 6c 65 61 73 65 20  |ely (and please |
00001840  64 6f 29 20 61 73 20 6c  6f 6e 67 20 61 73 20 79  |do) as long as y|
00001850  6f 75 20 64 6f 20 6e 6f  74 20 73 65 6c 6c 20 69  |ou do not sell i|
00001860  74 20 66 6f 72 20 61 20  70 72 6f 66 69 74 20 28  |t for a profit (|
00001870  50 44 2d 6c 69 62 72 61  72 69 65 73 20 61 72 65  |PD-libraries are|
00001880  20 6e 61 74 75 72 61 6c  6c 79 20 61 6c 6c 6f 77  | naturally allow|
00001890  65 64 20 74 6f 20 63 6f  76 65 72 20 74 68 65 69  |ed to cover thei|
000018a0  72 20 63 6f 73 74 73 29  20 6f 72 20 69 6e 63 6c  |r costs) or incl|
000018b0  75 64 65 20 69 74 20 77  69 74 68 20 61 20 70 72  |ude it with a pr|
000018c0  6f 64 75 63 74 20 74 68  61 74 20 69 73 20 73 6f  |oduct that is so|
000018d0  6c 64 20 66 6f 72 20 61  20 70 72 6f 66 69 74 20  |ld for a profit |
000018e0  28 77 69 74 68 6f 75 74  20 6d 79 20 70 65 72 6d  |(without my perm|
000018f0  69 73 73 69 6f 6e 20 2d  20 27 54 68 65 20 4d 69  |ission - 'The Mi|
00001900  63 72 6f 20 55 73 65 72  27 20 69 73 20 61 6c 6c  |cro User' is all|
00001910  6f 77 65 64 20 74 6f 20  75 73 65 20 74 68 69 73  |owed to use this|
00001920  20 76 65 72 73 69 6f 6e  20 6f 6e 20 74 68 65 69  | version on thei|
00001930  72 20 63 6f 76 65 72 20  64 69 73 63 29 20 61 6e  |r cover disc) an|
00001940  64 20 61 73 20 6c 6f 6e  67 20 61 73 20 79 6f 75  |d as long as you|
00001950  20 64 6f 20 6e 6f 74 20  63 68 61 6e 67 65 20 6f  | do not change o|
00001960  72 20 64 65 6c 65 74 65  20 61 6e 79 20 6f 66 20  |r delete any of |
00001970  74 68 65 20 6f 72 69 67  69 6e 61 6c 20 66 69 6c  |the original fil|
00001980  65 73 20 77 68 69 63 68  20 61 72 65 3a 0a 0a 20  |es which are:.. |
00001990  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000019b0  20 20 20 20 20 20 20 21  4a 75 6c 69 61 41 6e 69  |       !JuliaAni|
000019c0  6d 20 28 6e 6f 74 20 72  65 61 6c 6c 79 20 61 20  |m (not really a |
000019d0  66 69 6c 65 29 2c 0a 20  20 20 20 20 20 20 20 20  |file),.         |
000019e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000019f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 21  |               !|
00001a00  4a 75 6c 69 61 41 6e 69  6d 2e 21 42 6f 6f 74 2c  |JuliaAnim.!Boot,|
00001a10  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00001a20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001a30  20 20 20 20 20 20 20 20  20 21 4a 75 6c 69 61 41  |         !JuliaA|
00001a40  6e 69 6d 2e 21 48 65 6c  70 20 28 74 68 69 73 20  |nim.!Help (this |
00001a50  66 69 6c 65 29 2c 0a 20  20 20 20 20 20 20 20 20  |file),.         |
00001a60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001a70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 21  |               !|
00001a80  4a 75 6c 69 61 41 6e 69  6d 2e 21 52 75 6e 2c 0a  |JuliaAnim.!Run,.|
00001a90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001ab0  20 20 20 20 20 20 20 20  21 4a 75 6c 69 61 41 6e  |        !JuliaAn|
00001ac0  69 6d 2e 21 52 75 6e 49  6d 61 67 65 2c 0a 20 20  |im.!RunImage,.  |
00001ad0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001af0  20 20 20 20 20 20 21 4a  75 6c 69 61 41 6e 69 6d  |      !JuliaAnim|
00001b00  2e 21 53 70 72 69 74 65  73 2c 0a 20 20 20 20 20  |.!Sprites,.     |
00001b10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001b30  20 20 20 21 4a 75 6c 69  61 41 6e 69 6d 2e 6d 63  |   !JuliaAnim.mc|
00001b40  20 61 6e 64 0a 20 20 20  20 20 20 20 20 20 20 20  | and.           |
00001b50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001b60  20 20 20 20 20 20 20 20  20 20 20 20 20 21 4a 75  |             !Ju|
00001b70  6c 69 61 41 6e 69 6d 2e  4d 65 6d 41 6c 6c 6f 63  |liaAnim.MemAlloc|
00001b80  0a 0a 49 66 20 4d 65 6d  41 6c 6c 6f 63 20 69 73  |..If MemAlloc is|
00001b90  20 6d 69 73 73 69 6e 67  20 74 68 65 6e 20 79 6f  | missing then yo|
00001ba0  75 20 63 61 6e 20 6a 75  73 74 20 63 6f 70 79 20  |u can just copy |
00001bb0  69 74 20 66 72 6f 6d 20  74 68 65 20 21 4c 61 6e  |it from the !Lan|
00001bc0  64 65 72 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  |der application |
00001bd0  6f 6e 20 74 68 65 20 41  70 70 32 20 64 69 73 63  |on the App2 disc|
00001be0  20 28 61 74 20 6c 65 61  73 74 20 74 68 61 74 27  | (at least that'|
00001bf0  73 20 77 68 65 72 65 20  69 74 20 69 73 20 69 6e  |s where it is in|
00001c00  20 6d 79 20 76 65 72 73  69 6f 6e 20 6f 66 20 52  | my version of R|
00001c10  69 73 63 4f 53 29 2e 0a  0a 0a 46 69 6e 61 6c 6c  |iscOS)....Finall|
00001c20  79 3a 0a 0a 49 66 20 79  6f 75 20 68 61 76 65 20  |y:..If you have |
00001c30  61 6e 79 20 73 75 67 67  65 73 74 69 6f 6e 73 20  |any suggestions |
00001c40  66 6f 72 20 69 6d 70 72  6f 76 65 6d 65 6e 74 73  |for improvements|
00001c50  20 74 6f 20 74 68 69 73  20 70 72 6f 67 72 61 6d  | to this program|
00001c60  20 6f 72 20 68 61 76 65  20 77 72 69 74 74 65 6e  | or have written|
00001c70  20 73 6f 6d 65 20 69 6e  74 65 72 65 73 74 69 6e  | some interestin|
00001c80  67 20 66 72 61 63 74 61  6c 20 70 72 6f 67 72 61  |g fractal progra|
00001c90  6d 20 79 6f 75 72 73 65  6c 66 20 77 68 69 63 68  |m yourself which|
00001ca0  20 79 6f 75 20 77 61 6e  74 20 74 6f 20 74 65 6c  | you want to tel|
00001cb0  6c 20 6d 65 20 61 62 6f  75 74 20 6f 72 20 6a 75  |l me about or ju|
00001cc0  73 74 20 77 61 6e 74 20  74 6f 20 74 65 6c 6c 20  |st want to tell |
00001cd0  6d 65 20 77 68 61 74 20  61 20 67 72 65 61 74 20  |me what a great |
00001ce0  70 72 6f 67 72 61 6d 20  79 6f 75 20 74 68 69 6e  |program you thin|
00001cf0  6b 20 21 4a 75 6c 69 61  41 6e 69 6d 20 69 73 20  |k !JuliaAnim is |
00001d00  74 68 65 6e 20 79 6f 75  20 63 61 6e 20 63 6f 6e  |then you can con|
00001d10  74 61 63 74 20 6d 65 20  62 79 20 77 72 69 74 69  |tact me by writi|
00001d20  6e 67 20 74 6f 3a 0a 0a  20 20 20 20 20 20 20 20  |ng to:..        |
00001d30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001d50  49 76 61 72 20 57 69 6e  64 20 53 6b 6f 76 67 61  |Ivar Wind Skovga|
00001d60  61 72 64 2c 0a 20 20 20  20 20 20 20 20 20 20 20  |ard,.           |
00001d70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001d80  20 20 20 20 20 20 20 20  20 20 20 20 20 48 61 76  |             Hav|
00001d90  73 67 e5 72 64 73 76 65  6a 20 32 37 2c 0a 20 20  |sg.rdsvej 27,.  |
00001da0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001dc0  20 20 20 20 20 20 32 39  30 30 20 48 65 6c 6c 65  |      2900 Helle|
00001dd0  72 75 70 2c 0a 20 20 20  20 20 20 20 20 20 20 20  |rup,.           |
00001de0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001df0  20 20 20 20 20 20 20 20  20 20 20 20 20 44 65 6e  |             Den|
00001e00  6d 61 72 6b 2e 0a                                 |mark..|
00001e06