home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 8 / CDASC08.ISO / NEWS / 676 / ORBWHIRL / ORBWHIRL.TXT < prev    next >
Text File  |  1993-10-07  |  7KB  |  151 lines

  1.                     --==≡≡    O R B I T    W H I R L    ≡≡==--
  2.         FreeWare by Marc Coram (thanks to Jordan Hargrave for SVGA256.BGI)
  3.   --Based on the orbits of the Mandelbrot Set for real numbers (VGA REQUIRED)--
  4.  
  5. Syntax: ORBWHIRL [VIDMODE ][CURVE [POINTS [TLENGTH]]]
  6.         VIDMODE is a letter A-E which selects your video mode.
  7.                 A=320x200 B=640x400 C=640x480 D=800x600 E=1024x768
  8.         CURVE   is a floating point number between -2 and 0 It signifies C
  9.                 in the iterative formula nx=x*x+C, whose graph is the parabola.
  10.                 As CURVE approaches 0, the parabola raises and the pattern
  11.                 becomes regular. As CURVE approaches -2, the curve drops and
  12.                 the pattern becomes chaotic.
  13.         POINTS  is an integer which signifies how many individual tracing
  14.                 swirls will be produced ( <=253 ). Lower POINTS for speed.
  15.         TLENGTH is an integer which signifies the length of the tracing swirls.
  16.                 If zero, the trails will not clear.
  17.  
  18. Default:  "ORBWHIRL A -2 253 8"
  19. Also try: "ORBWHIRL -1.4 25 1000" OR "ORBWHIRL -.72" OR "ORBWHIRL -1.7 60 50"
  20.           "ORBWHIRL B -2 253 0" OR "ORBWHIRL D" OR "ORBWHIRL -1.75 2 0"
  21.  
  22. ENJOY!  Comments/Improvements(/Donations?) appreciated:
  23.         Marc Coram / 15570 Knochaven Rd / Santa Clarita, CA 91350-2799
  24.  
  25. ------------------------ Basic Operation ------------------------
  26.  
  27. After running ORBWHIRL.EXE, I suggest you:
  28. (1) reduce the number of tracing swirls ( <Page-Down> ) until you
  29.     achieve sufficient speed;
  30. (2) set TLENGTH either to 0 or to a large number (hold down <End>
  31.     or <Home> );
  32. (3) adjust the Palette ( <P> );
  33. (4) press <B> to invoke the bifurcation diagram
  34. (5) Use the <Up> and <Down> keys to raise and lower the curve. As
  35.     you move the curve, observe how a higher curve (a small
  36.     negative CURVE value) creates a more regular pattern of
  37.     swirls, but a lower curve (approaching -2) tends to be more
  38.     chaotic.
  39.  
  40. ------------------------ Interactive Keys -----------------------
  41.  
  42. During execution, useful information is displayed on the right of
  43. the screen. The current CURVE, POINTS, and TLENGTH values are
  44. displayed. Also displayed is a list of the keys that can be
  45. pressed to change these values.
  46.  
  47. The <Up> and <Down> arrow keys move the curve up and down in 0.1
  48. increments. For finer, 0.01 increments, use <Shift-Up> and
  49. <Shift-Down>. For even finer 0.001 increments, use <Ctrl-Up> and
  50. <Ctrl-Down>. Watch the value of CURVE on the right change. It can
  51. range between 0 and -2.
  52.  
  53. The <Page-Up> and <Page-Down> keys change the number of tracing
  54. swirls (POINTS) on the screen by 10. Use <Shift-Page-Up> and
  55. <Shift-Page-Down> (or <Ctrl> ) to change by 1. Reducing the
  56. number of swirls will allow them to move faster, but may not be
  57. as much fun. After you have selected an appropriate number, it is
  58. a good idea to press <P> for Palette. This will recreate the
  59. color palette so that the swirls will cover more of the spectrum.
  60. POINTS can vary from 1 to 253.
  61.  
  62. The <Home> and <End> keys change the length of the tracing swirls
  63. (TLENGTH) by 10. Use <Shift-Home> and <Shift-End> (or <Ctrl> ) to
  64. change by 1. Reducing the number to 0 will make the trails
  65. infinitely long (i.e. they won't erase). It may be necessary to
  66. fix the palette ( <P> ) when TLENGTH is newly set to 0.
  67.  
  68. The <C> key is also useful when TLENGTH is set to 0. It will
  69. clear the trails drawn up to the current time, but then allow
  70. them continue drawing them from their current position. This is
  71. useful to reduce clutter and see if the trails have settled in to
  72. a final position.
  73. TLENGTH can vary from 0 to 253.
  74.  
  75. Video modes can be changed by typing <Alt-A>, <Alt-B>, <Alt-C>,
  76. <Alt-D>, or <Alt-E>. Where A=320x200, B=640x400, C=640x480,
  77. D=800x600, and E=1024x768. Higher video modes tend to run slower,
  78. though.
  79.  
  80. The information panel on the right can be hidden by pressing <H>.
  81.  
  82. To restore the text information press <T> or <S>.
  83.  
  84. To show a bifurcation diagram on the panel press <B>. Think of
  85. the bifurcation diagram as a map to the behavior of the tracing
  86. swirls. The line drawn across the diagram corresponds to your
  87. current value of CURVE. If it passes through an orderly region,
  88. the behavior of the tracing swirls will become orderly as well.
  89. Notice how the diagram begins at the top with a single line
  90. arcing down the screen, but then it branches into two lines at
  91. about -0.75 . This region continues down until about -1.25, where
  92. it branches again. If you move the parabola up until the line is
  93. in the single branched region, you will observe that the tracing
  94. swirls, like the pattern on the right, converge into a single
  95. point. In the region with two branches, the swirls will converge
  96. into a square. In the region with four branches, the swirls will
  97. converge into a disjointed figure that looks like two overlapping
  98. squares. The number of vertical lines that the swirls trace
  99. corresponds to the number of points shown across the length of
  100. the line on the right. Each time the bifurcation diagram
  101. branches, this number doubles. This is referred to as period
  102. doubling.
  103.  
  104. But, the period doubling does not continue (visibly anyway) past
  105. a certain limit point. Eventually, the dot pattern becomes so
  106. random in appearance that it is termed chaotic.
  107.  
  108. Mysteriously, though, notice how small, but numerous regions of
  109. order crop-up in the middle of the chaos. At about -1.75, for
  110. example, the pattern returns to order, only this time it forms
  111. three branches. But, even as before, each of those branches
  112. doubles, forming 6, 12, 24 ... branches, before settling back
  113. into chaos.
  114.  
  115. --------------- Sensitivity to Initial Conditions ---------------
  116.  
  117. ORBWHIRL provides a good demonstration of this principle of Chaos
  118. theory. Observe how the tracing swirls, originally in a regular
  119. pattern and closely spaced (especially for high values of
  120. POINTS), tend to scatter (especially as CURVE approaches -2).
  121. This is referred to as the "Butterfly Effect," based on the idea
  122. that a ridiculously small change in initial conditions (the flap
  123. of a butterfly's wing, for instance) could change weather
  124. patterns all over the world, given sufficient time, because of
  125. the chaotic nature of the weather.
  126.  
  127. ------------------------- How It Works --------------------------
  128.  
  129. Each tracing swirl is assigned an initial value. For example,
  130. assume that the swirl's value, X, is 1 and that the value of the
  131. curve is -1.9 . The swirl begins at the top of the screen, over
  132. towards the right by an amount representative of the value, 1,
  133. (i.e. the coordinates of the point are (1,2) ). It then proceeds
  134. down the screen until it "bumps into" the curve. Since the
  135. equation of the parabola is y=x*x-1.9 this will occur at
  136. y=1*1-1.9=-0.9 or the point (1,-0.9). The swirl then moves left
  137. or right until it intersects the line y=x . Since y=-0.9 the
  138. point will move left until x=-0.9 .
  139.  
  140. Now the pattern repeats, the point moves up or down to the curve
  141. then left or right to the line, then up or down ....
  142.  
  143. Listing just the x values, the swirl proceeds as follows:
  144.  1.
  145. -0.9            =( 1. )*( 1. )-1.9
  146. -1.09           =(-0.9)*(-0.9)-1.9
  147. -0.7119         ...
  148. -1.39319839
  149.  0.041001754...
  150. Notice how the number of decimal places expands exponentially.
  151.