Assignment 5 Fractals
Maximum Points = 50
The purpose of this lab is to focus on the study of classes, objects, GUI, and recursion.
A fractal is a geometric shape that can be made up of the same pattern repeated at different scales and orientations. The nature of a fractal lends itself to a recursive definition. Interest in fractals has grown immensely in recent years, largely due to Benoit Mandelbrot, a Polish mathematician born in 1924. He demonstrated that fractals occur in many places in mathematics and nature. Computers have made fractals much easier to generate and investigate. Over the past quarter century, the bright, interesting images that can be created with fractals have come to be considered as much an art form as a mathematical interest. [Java Software Solutions 6th Edition, Lewis & Loftus, pg. 604]
One particular example of a fractal is called the H tree (so called because its first two steps resemble the letter "H"). They can be constructed by starting with a line segment of arbitrary length, drawing two shorter segments at right angles to the first through its endpoints, and continuing in the same vein, reducing (dividing) the length of the line segments drawn at each stage by √2. Surprisingly, continuing this process will eventually come arbitrarily close to every point in a rectangle, or in other words, the H-fractal is a space-filling curve.[2] It is also an example of a fractal canopy, in which the angle between neighboring line segments is always 180 degrees .
The H tree is commonly used in VLSI design as a clock distribution network for routing timing signals to all parts of a chip with equal propagation delays to each part.[3] For the same reason, the H tree is used in arrays of microstrip antennas in order to get the radio signal to every individual microstrip antenna with equal propagation delay. Additionally, the H tree has been used as an interconnection network for VLSI multiprocessors,[4] as a space efficient layout for trees in graph drawing,[5] and as part of a construction of a point set for which the sum of squared edge lengths of the traveling salesman tour is large.[6] [http://en.wikipedia.org/wiki/Mandelbrot_tree]
Variations of the H tree are I tree (starts with vertical line instead of horizontal line), T tree (horizontal lines are only drawn above a vertical line), and L tree (a pair of perpendicular lines are drawn at each end of the L).
Using the KochSnowflake program (Listings 11.6 and 11.7), design and implement an applet that.
Allow the user to
i. choose a fractal design from a menu item (must have at least three choices of letters). The buttons to increase and decrease the order of the fractal will apply to whichever fractal design is chosen.
ii. pick the background and drawing colors.
iii. select the maximum number of iterations
Due before class on Friday, November 12, 2010) Submit a .doc file containing the UML class diagram showing inheritance for all the classes used in your program. [10 pts]
(Due before class on Friday, November 19, 2010) Submit your .java files containing your program to the dropbox in WebCT. [50 pts]
Grades are determined using the following scale: