home *** CD-ROM | disk | FTP | other *** search
/ NeXT Education Software Sampler 1992 Fall / NeXT Education Software Sampler 1992 Fall.iso / Programming / Source / Lyapunov / HelpPanel.nib (.txt) < prev    next >
Encoding:
NeXT TypedStream Data  |  1992-08-01  |  10.7 KB  |  150 lines

  1. typedstream
  2. StreamTable
  3.     HashTable
  4. Object
  5. [20c]
  6. typedstream
  7. [1035c]
  8. typedstream
  9.     HashTable
  10. Object
  11. FirstResponder
  12. HeaderClass
  13. %%%%i@@
  14. firstnib
  15. checkSpelling:
  16. alignSelCenter:
  17.     unscript:
  18. pasteFont:
  19. runPageLayout:
  20. superscript:
  21. copyRuler:
  22.     copyFont:
  23. selectAll:
  24. pasteRuler:
  25. toggleRuler:
  26. showGuessPanel:
  27. alignSelLeft:
  28. paste:
  29. performClose:
  30. arrangeInFront:
  31. subscript:
  32. copy:
  33. alignSelRight:
  34. delete:
  35. orderFrontColorPanel:
  36. underline:
  37. performMiniaturize:
  38. LyapunovView
  39. /usr/include/sys/message.h
  40. viewnib
  41. depth
  42. toShade
  43.     fromShade
  44. avgOut
  45.     backShade
  46.     posMatrix
  47. initialValue
  48. reApplyButton
  49. contrastText
  50. pattern
  51. contrastSlider
  52. scaleMatrix
  53. plotType
  54.     newParam:
  55. appDidInit:
  56.     contrast:
  57. reApply:
  58. InfoController
  59. genericobject_nib
  60.     helpPanel
  61.     infoPanel
  62. licensePanel
  63. preferencesPanel
  64. info:
  65. preferences:
  66. license:
  67. help:
  68. [9785c]
  69. typedstream
  70.     HashTable
  71. Object
  72. NibData
  73. @@@@s
  74. Storage
  75. {*@@}
  76. [3{*@@}]
  77. File's Owner
  78. CustomObject
  79. InfoController
  80. WindowTemplate
  81. iiii***@s@
  82. Help!
  83. Panel
  84.     Responder
  85. ScrollView
  86. ClipView
  87. ciifffcfffs
  88. [8929c]{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
  89. \margl40
  90. \margr40
  91. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\b\i0\ul0\fs72        Lyapunov Help\
  92. \b0\fs48 \
  93. \fs28      Lyapunov is a program which plots a fractal space known as a "Lyapunov Space" (hence the odd name).  This space is generated by a simple iterated equation, commonly used for predicting populations:\
  94.               
  95. \fs38 x
  96. \fs34\dn8 n+1 
  97. \fs38\dn0 =  r x
  98. \fs34\dn8 n 
  99. \fs38\dn0 (1 - x
  100. \fs34\dn8 n
  101. \fs38\dn0 )\
  102. \fs28 \
  103. where
  104. \fs24  
  105. \fs28 "r" is a constant of proportionality.  The new twist here, used to generate a Lyapunov space, is that the value of "r" changes during repeated iterations and that the Lyapunov exponent of "x" is of more interest than the actual values "x" takes on.  The Lyapunov exponent is approximated by taking an average, using this formula for each "x" generated:\
  106.         
  107. \fs36 Lyap.[x] = Avg[ log
  108. \fs32\dn10 2 
  109. \fs36\dn0 ( abs ( r - 2 r x
  110. \fs32\dn8 n 
  111. \fs36\dn0 ) ) ]\
  112. \fs28 \
  113. The value of "r" alternates between two values, determined by the (x,y) coordinates in a plane.  The repetition pattern, called a Markus vector, is predefined and determines what the final picture will look like.  To plot the Lyapunov space, a solid "background" color is assigned to all positive Lyapunov exponents, and a shaded color is assigned to the negative exponents.  (The "background" color appears in areas where the exponent is unstable, i.e. chaotic.)  If you want to look at positive exponents, rather than negative exponents, then you can flip the polarity on the Control Panel.\
  114.      This application implements numerous controls to allow you to change the images generated and study in detail areas of the images.  To begin, you select the area of the plane to plot.  The viewing area is set up in a normal x-y coordinate system; you give the lower left coordinates of the area to view and the width and height (scale factor) of the area to view.  After having drawn an image, if you want to zoom in on an area, just click the mouse down in the center and drag outward until the outline drawn encloses the area you wish to view next.  (This works like the Mandelbrot application.)  If you want a larger image, resize the output window as normal.  The zoom/scale and lower left/upper right corner specifications will remain the same, so this is like blowing up or shrinking (or scaling) the picture to change the resolution.\
  115.      To help you get a better feel for the area being plotted, there are fields which give the window size (in pixels) and the coordinates of the upper right hand corner.  You cannot change these is the text fields; they are provided for convenience.  The corner coordinates depend upon the lower left corner's coordinates and the scale; the window size is adjusted by resizing the window.\
  116.      You also may select an image depth.  This is the number of iterations that will be performed.  By playing with the dwell and settle values you can increase the precision and accuracy of the image rendering.  Beware, however, that large numbers will take a very long time to render.  Settle is the number of iterations that are performed before the averaging begins.  Dwell is the number of iterations that are averaged after the settling is done.  Because the averaging includes a log function, the large dwell values slow things down more than large settle values.  By using a reasonable settle value, you can get better precision with faster speed
  117. but it takes a while to get a feel for good numbers to use.  Because of a trick used to speed things up, the dwell value must be a multiple of four.\
  118. (The trick is that I do the log only one out of four times.  Adding logs and multiplying their arguments are equivalent, so the dwell loop has effectively been unravelled a bit.  You could speed things up more by unravelling it more; I'd like to allow the user to specify the amount of unravelling eventually, if possible.)  Lyapunov will fix the dwell for you if you don't give a multiple of four.  Also, the settle value should be less than or equal to the dwell value.  (Setting more than dwelling is pretty useless.)  Again, Lyapunov will change dwell for you if you violate this rule.  Finally, you can change the initial value used for "x
  119. \fs20\dn10 0
  120. \fs28\dn0 " in the first iteration.  This CAN affect the image, oddly enough!  (Unlike the Mandelbrot images
  121.      It is possible to change the Markus vector, the pattern you wish to use for selecting "r" from the x/y coordinates.  On the control panel, it is listed as the "Axis Pattern."  Conventionally, the letters "a" and "b" were used for this; Lyapunov will accept "a"/"b" or "x"/"y" to select the pattern.  When you're ready to plot the image, just click on the "Go" button.\
  122.      In order to color the system, a color map is used.  The color map is a text file with a ".map" extension.  Any map used by the "fractint" program should work with Lyuapunov.  Quite a few example maps have been provided with Lyapunov.  If you do a "make install", the maps should be copied into the .app folder that is created.  Lyapunov will always first look for color map files inside the .app wrapper.  If you prefer, you can set up Lyapunov to check in a Library/Colormaps directory by placing that path into the source, assuming that re-compiling it doesn't make you queasy.  (Check the -loadMap: method in ColorMapView.h
  123. the directory passed to the OpenPanel would need to be altered.)  The "color" button is used to change the colors on a previously rendered image - this is MUCH faster than regenerating the entire image!\
  124.     You can save any image that you've rendered as a LZW-compressed .tiff file.  If you want the .tiff in another format, you must either change the source in LyapunovView.m where the images are saved or use one of the zillions of image format converters available for the NeXT.\
  125.      If you haven't yet rendered a Lyapunov space, you cannot apply a color map or save a .tiff image.  One you have rendered an image by hitting GO on the control panel, you may then use these options.  You can, however, load a color map to be used in the rendering before the rendering has begun.\
  126.      This gives a basic overview of the program.  For more information about Lyapunov spaces (and the inspiration for this program) see Scientific American, September 1991, pp. 178-180 for an informative article and other sources of information.  Version 1.0 of this program used my own algorithm for generating the images.  I have now added functionality and a better algorithm derived from the UNIX command line program "lyap".  Along with the source, I provided a copy of the original source to the command line version so that Terminal jockeys can have some fun, too.  The main advantages of this GUI are (1) you don't have to remember command line options and (2) you can re-map the image without regenerating the fractal.\
  127.      In the future I would like to put the rendering into a separate thread so that you can start and stop it while it's being rendered.  Also, allowing the calculation to be done by multiple, networked, machines would be nice.  Further speedups in the algorithm wouldn't hurt, either.  I also plan to add a color map generator/editor eventually.  Ability to print the graphics would also be useful.  Currently, the way they are drawn on the screen prevents this...but the extra code required would be fairly simple.  (I just haven't had the time to do it yet.)\
  128. \fs20      Source code for this program is included in the hopes that (1) some genius might find a way to speed it up since I'm no master C genius type of person and (2) someone can pick up useful ideas for their own future programs.  But... here's the legal stuff so that no one gets ripped off:\
  129. \fs18      This software is freeware.  You may freely distribute and use it for any purpose as long as the author's name, copyright notice, and this license remain intact.  The author is not responsible for any damages, consequential or inconsequential, resulting from the use and distribution of this software.  Source code, although provided, may not be used in any future software which is sold for gain without an express written agreement with the author.  This software, or any program derived from it, may not be sold for gain.  (Only a reasonable distribution fee is permissable.)  No warranty, express or implied, is provided with this software.\
  130. \fs20  \
  131. To contact the author, write to:        Permanent (home):\
  132. \fs22    Don Yacktman                Don Yacktman (Jr.)\
  133.      4279 N. Ivy Lane            2826 N. Elm Lane\
  134.      Provo, UT, 84604            Arlington Hts., IL, 60004\
  135.      (801)221-0344\
  136.      yackd@alaska.et.edu -or- yackd@wombat.ee.byu.edu\
  137. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320 \
  138. I don't ignore inquiries; I promise I'll respond to any questions you may have. :-)\
  139. NXCursor
  140. NXImage
  141. NXibeam
  142. Scroller
  143. Control
  144. _doScroller:
  145. @@@ffs
  146. ScrollingText
  147. {i*@@@}
  148. [1{i*@@@}]
  149.     helpPanel
  150.