home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-10-07 | 7.2 KB | 125 lines | [TEXT/MSWD] |
- Fractals!
-
- by Michael Webb
- version 1.0
- 9/24/89
-
- Introduction
-
- This document describes the Macintosh application Fractals!. The program should run on any
- Macintosh (MacPlus and better), and is Multifinder compatible. (I wouldn't recommend using it
- under Multifinder, however, as it is calculation intensive). I wrote Fractals! because I wanted to
- learn how to write Macintosh applications, and I like DLA's (what I call the pattern created by
- Diffusion Limited Aggregation).
-
- Fractals! is freeware! I would like to hear from you, whether or not you actually like the program.
- Please drop me a postcard or write to my email address below. The further success of Fractals!
- depends on the response I get from the users. Further improvements could include (but are not
- limited to) color on a MacII, full use of larger screen sizes, better printing (i.e. print full size instead
- of a bitmap), etc. Let me hear from you! (That goes for bug reports as well).
-
- You should have the following documents:
-
- Fractals! (the application)
- Three seed fractals named Seed100, Seed250 and Seed500, and BigOne.
- This document, in text and MSWord form.
-
- This program is not in the public domain. You may distribute it as you wish, just keep the above
- files together. Source code is available; contact me.
-
-
- Diffusion Limited Aggregation
-
- The standard analogy used to describe diffusion limited aggregation concerns a group of drunks.
- Suppose you release a drunk into a large field. He will wander about randomly, taking steps in
- arbitrary directions, with seemingly no method to his madness. Suppose that after a while, he gets
- tired and lays down to sleep. Next, we let another drunk enter the field. He has more stamina than
- the first, and as he wanders, he stumbles upon the sleeping drunk. Thinking that it must be a
- comfortable place, he lays down and falls asleep. As we let more and more drunks enter the field, a
- random pattern develops. This pattern has a characteristic form, and for reasons unknown to history
- (to me, anyway), we call this form a fractal. (The term was invented by Benoit Mandelbrot).
- Actually, doing this experiment with a complex computer algorithm (similar to that used by
- Fractals!), one can show that if enough points are accumulated, the number of points within a
- given radius will be given by:
-
- R ≈ N^alpha
-
- where R is the radius, and alpha is the fractal dimension. Very large fractals have a dimension of
- approximately 1.6. Smaller ones will have slightly larger dimensions. This number is characteristic
- of this measurement, and I am told that no theory based on first principles can calculate it. Fractals!
- is a program to demonstrate this phenomena. The name should now be somewhat obvious, we are
- studying the aggregation (sticking) of particles moving completely randomly (diffusion limited). (If
- you ask how this can be for real particles, I would say that for most of it's travel, the particle is so far
- from the main aggregate that Van derWaals forces are negligible. Only when it comes close to the
- aggregate do these forces take effect, and that's when the particle sticks).
-
- A note for the keen student: you may ask, "If the particle is moving randomly, how does it go
- anywhere? Shouldn't it just stay in one spot, since for each step to the left, it takes a step to the
- right?" That's good intuition (is it?), but as is the case sometimes, it is wrong. It can be shown
- (translation: I know it's the right answer, but I either can't remember how to prove it, or it would
- take too much effort) that if the step size of the drunk is one unit, after N steps, the drunk will be, on
- the average, Sqrt(N) units away from where he started. If you are interested in this point, and are
- mathematical inclined, look at the classic text on Statistical Mechanics by Reif.
-
-
- Using Fractals!
-
- The program runs very simply. It moves a little point around the screen, and when the point hits the
- aggregate, it sticks, and another point starts from a random position on the boundary. You can either
- start with a single point in the middle, or with one of the seeds I have provided. (You can of course
- grow your own seed). After you have reached a predetermined size, the program will stop and
- mindlessly display the fractal for as long as you wish. If you grow tired (hee hee), you can stop the
- simulation and save your fractal to grow again some other day.
-
- The Apple Menu. Should be self-explanatory for anybody who's used a Mac program before.
-
- The File Menu. This should also be transparent. The Print option generates a simple bitmap of the
- contents of the fractal window.
-
- The Edit Menu. This is included for Desk Accessories. It is not used by Fractals!.
-
- The Options Menu. This menu has four entries: Boundary . . . , Aggregate Size . . ., Show Point
- and Show Boundary.
-
- Boundary . . .will set the size of the buffer between the aggregate and the boundary. You could think
- of it as an method to change the boundary conditions. A boundary buffer less than five lattice sites
- wide does not give good results, so you cannot set the buffer to less than five (nor more than the
- screen width). Setting the buffer to five will grow about one particle a second, more or less. (For
- small fractal sizes). To really appreciate this, you should set the buffer to 100 or so and see how far
- you get in a couple of hours. Not very far! So why include this option at all? The fractal growth
- pattern is very sensitive to boundary conditions. I use 'bouncing ball' boundary conditions, which
- tend to keep the fractal growing more symmetrically compared to periodic (wrap around) boundary
- conditions. Larger boundaries are less sensitive to fluctuations. You choose.
-
- Aggregate Size . . . will fix the size of the aggregate (in the number of collected particles). Useful if
- you want to track the growth of a fractal over a period of time, or make a collection of 1500 point
- fractals.
-
- Show Point If check-marked, the moving particle will be displayed as it wanders around the screen.
- Actually, the particle is not displayed every time it moves, but every TENTH time. This keeps the
- algorithm moving fast; I/O is too slow to display the point every time it moves. The effect of plotting
- every tenth position isn't detrimental, but at times, the particle may move in jerky motions, and it may
- seem to stick to the aggregate from a long way away. It is operating correctly. If Show Point is un-
- checkmarked, the moving point isn't shown at all; it only appears when it sticks.
-
- Show Boundary If check-marked, a border is plotted on the screen to show you where the boundary
- is. I don't particularly like it, but some of the beta testers wanted it, so I included it. If un-
- checkmarked, no border is shown.
-
- Program Features
- The target size of the aggregate is shown in the upper right corner. The total number of particles
- aggregated is displayed in the lower right hand corner. The filename of the fractal is shown centered
- at the top of the window. The number of moves until aggregation for each particle is displayed in the
- upper left corner. This number is updated every time a particle sticks.
-
- Above all, enjoy the pretty pictures!
-
-
-
- Michael Webb
- 1789-1 Beal Ave.
- Ann Arbor, MI 48105
-
- Michael_Webb@ub.cc.umich.edu or
- user6lnu@umichub.BITNET
-