home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 8
/
CDASC08.ISO
/
NEWS
/
676
/
ORBWHIRL
/
ORBWHIRL.TXT
< prev
next >
Wrap
Text File
|
1993-10-07
|
7KB
|
151 lines
--==≡≡ O R B I T W H I R L ≡≡==--
FreeWare by Marc Coram (thanks to Jordan Hargrave for SVGA256.BGI)
--Based on the orbits of the Mandelbrot Set for real numbers (VGA REQUIRED)--
Syntax: ORBWHIRL [VIDMODE ][CURVE [POINTS [TLENGTH]]]
VIDMODE is a letter A-E which selects your video mode.
A=320x200 B=640x400 C=640x480 D=800x600 E=1024x768
CURVE is a floating point number between -2 and 0 It signifies C
in the iterative formula nx=x*x+C, whose graph is the parabola.
As CURVE approaches 0, the parabola raises and the pattern
becomes regular. As CURVE approaches -2, the curve drops and
the pattern becomes chaotic.
POINTS is an integer which signifies how many individual tracing
swirls will be produced ( <=253 ). Lower POINTS for speed.
TLENGTH is an integer which signifies the length of the tracing swirls.
If zero, the trails will not clear.
Default: "ORBWHIRL A -2 253 8"
Also try: "ORBWHIRL -1.4 25 1000" OR "ORBWHIRL -.72" OR "ORBWHIRL -1.7 60 50"
"ORBWHIRL B -2 253 0" OR "ORBWHIRL D" OR "ORBWHIRL -1.75 2 0"
ENJOY! Comments/Improvements(/Donations?) appreciated:
Marc Coram / 15570 Knochaven Rd / Santa Clarita, CA 91350-2799
------------------------ Basic Operation ------------------------
After running ORBWHIRL.EXE, I suggest you:
(1) reduce the number of tracing swirls ( <Page-Down> ) until you
achieve sufficient speed;
(2) set TLENGTH either to 0 or to a large number (hold down <End>
or <Home> );
(3) adjust the Palette ( <P> );
(4) press <B> to invoke the bifurcation diagram
(5) Use the <Up> and <Down> keys to raise and lower the curve. As
you move the curve, observe how a higher curve (a small
negative CURVE value) creates a more regular pattern of
swirls, but a lower curve (approaching -2) tends to be more
chaotic.
------------------------ Interactive Keys -----------------------
During execution, useful information is displayed on the right of
the screen. The current CURVE, POINTS, and TLENGTH values are
displayed. Also displayed is a list of the keys that can be
pressed to change these values.
The <Up> and <Down> arrow keys move the curve up and down in 0.1
increments. For finer, 0.01 increments, use <Shift-Up> and
<Shift-Down>. For even finer 0.001 increments, use <Ctrl-Up> and
<Ctrl-Down>. Watch the value of CURVE on the right change. It can
range between 0 and -2.
The <Page-Up> and <Page-Down> keys change the number of tracing
swirls (POINTS) on the screen by 10. Use <Shift-Page-Up> and
<Shift-Page-Down> (or <Ctrl> ) to change by 1. Reducing the
number of swirls will allow them to move faster, but may not be
as much fun. After you have selected an appropriate number, it is
a good idea to press <P> for Palette. This will recreate the
color palette so that the swirls will cover more of the spectrum.
POINTS can vary from 1 to 253.
The <Home> and <End> keys change the length of the tracing swirls
(TLENGTH) by 10. Use <Shift-Home> and <Shift-End> (or <Ctrl> ) to
change by 1. Reducing the number to 0 will make the trails
infinitely long (i.e. they won't erase). It may be necessary to
fix the palette ( <P> ) when TLENGTH is newly set to 0.
The <C> key is also useful when TLENGTH is set to 0. It will
clear the trails drawn up to the current time, but then allow
them continue drawing them from their current position. This is
useful to reduce clutter and see if the trails have settled in to
a final position.
TLENGTH can vary from 0 to 253.
Video modes can be changed by typing <Alt-A>, <Alt-B>, <Alt-C>,
<Alt-D>, or <Alt-E>. Where A=320x200, B=640x400, C=640x480,
D=800x600, and E=1024x768. Higher video modes tend to run slower,
though.
The information panel on the right can be hidden by pressing <H>.
To restore the text information press <T> or <S>.
To show a bifurcation diagram on the panel press <B>. Think of
the bifurcation diagram as a map to the behavior of the tracing
swirls. The line drawn across the diagram corresponds to your
current value of CURVE. If it passes through an orderly region,
the behavior of the tracing swirls will become orderly as well.
Notice how the diagram begins at the top with a single line
arcing down the screen, but then it branches into two lines at
about -0.75 . This region continues down until about -1.25, where
it branches again. If you move the parabola up until the line is
in the single branched region, you will observe that the tracing
swirls, like the pattern on the right, converge into a single
point. In the region with two branches, the swirls will converge
into a square. In the region with four branches, the swirls will
converge into a disjointed figure that looks like two overlapping
squares. The number of vertical lines that the swirls trace
corresponds to the number of points shown across the length of
the line on the right. Each time the bifurcation diagram
branches, this number doubles. This is referred to as period
doubling.
But, the period doubling does not continue (visibly anyway) past
a certain limit point. Eventually, the dot pattern becomes so
random in appearance that it is termed chaotic.
Mysteriously, though, notice how small, but numerous regions of
order crop-up in the middle of the chaos. At about -1.75, for
example, the pattern returns to order, only this time it forms
three branches. But, even as before, each of those branches
doubles, forming 6, 12, 24 ... branches, before settling back
into chaos.
--------------- Sensitivity to Initial Conditions ---------------
ORBWHIRL provides a good demonstration of this principle of Chaos
theory. Observe how the tracing swirls, originally in a regular
pattern and closely spaced (especially for high values of
POINTS), tend to scatter (especially as CURVE approaches -2).
This is referred to as the "Butterfly Effect," based on the idea
that a ridiculously small change in initial conditions (the flap
of a butterfly's wing, for instance) could change weather
patterns all over the world, given sufficient time, because of
the chaotic nature of the weather.
------------------------- How It Works --------------------------
Each tracing swirl is assigned an initial value. For example,
assume that the swirl's value, X, is 1 and that the value of the
curve is -1.9 . The swirl begins at the top of the screen, over
towards the right by an amount representative of the value, 1,
(i.e. the coordinates of the point are (1,2) ). It then proceeds
down the screen until it "bumps into" the curve. Since the
equation of the parabola is y=x*x-1.9 this will occur at
y=1*1-1.9=-0.9 or the point (1,-0.9). The swirl then moves left
or right until it intersects the line y=x . Since y=-0.9 the
point will move left until x=-0.9 .
Now the pattern repeats, the point moves up or down to the curve
then left or right to the line, then up or down ....
Listing just the x values, the swirl proceeds as follows:
1.
-0.9 =( 1. )*( 1. )-1.9
-1.09 =(-0.9)*(-0.9)-1.9
-0.7119 ...
-1.39319839
0.041001754...
Notice how the number of decimal places expands exponentially.