home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 263b.lha / MandelVroom.doc < prev    next >
Text File  |  1989-06-29  |  78KB  |  1,538 lines

  1.                                                   MandelVroom User's Guide
  2.  
  3.                                         Program and Pictures by Kevin Clague
  4.                                  Documentation updated by Serenella Ciongoli
  5.  
  6.  INTRODUCTION
  7.  
  8.  Reference material:
  9.    H.O. Peitgen - P.H. Richter  The beauty of fractals - Springer-Verlag 1986
  10.    H.O. Peitgen - P.H. Richter The Science of Fractal Images -
  11.                 Springer-Verlag 1988
  12.    B.B. Maldelbrot - The fractal geometry of nature -
  13.                 W.H. Freeman and Company
  14.    Scientific American - August 1985 - Exploring the Mandelbrot Set
  15.    Micro Cornucopia -  Jan/Feb 1988 - 'Drawing The Mandelbrot and Julia Sets'
  16.                 by Larry Fogg.
  17.  
  18.  What is a Mandelbrot set
  19.  
  20.    The Mandelbrot set is the set of all the complex  numbers  for  which  the
  21.    value  of a  complex  function (usually Z*Z +/- C) is finite even after an
  22.    indefinitely large number of iterations.
  23.  
  24.    MandelVroom determines the  part  of  the  complex  plane  comprising  the
  25.    Mandelbrot set, according to the following procedure:
  26.  
  27.    Consider the algebraic expression Z*Z + C, where Z is a complex  variable,
  28.    and C is a complex constant. For a range of values of C, we:
  29.  
  30.    1. set the initial value of Z equal to the complex number 0
  31.    2. calculate the expression Z*Z + C = Z'
  32.    3. substitute Z' in the expression  and  calculate  again,  repeating  the
  33.           process until we reach infinity (or a preset maximum  iteration count).
  34.    4. Repeat the steps 1 thru 3 for a new value of C.
  35.  
  36.    We map the Mandelbrot set calculated in  the  above  process  in  a  three
  37.    dimensional coordinate system, where the X and Y coordinates represent the
  38.    real  and  imaginary  values of C, and the Z axis represents the iteration
  39.    count we obtained in step 3.
  40.  
  41.    Quoted from the article in Scientific American:
  42.  
  43.    The Mandelbrot set broods in silent complexity at the  center  of  a  vast
  44.    two-dimensional  sheet of numbers called the complex plane. When a certain
  45.    operation is applied repeatedly to the numbers, the ones inside remain  to
  46.    drift  or  dance  about.  Close  to  the  boundary, minutely choreographed
  47.    wanderings mark the onset of instability. Here is an infinite  regress  of
  48.    details  that  astonishes  us  with  its  variety,  its complexity and its
  49.    strange beauty.
  50.  
  51.  What is a Julia curve
  52.  
  53.    To calculate a Julia curve, we use a process similar to the one we used to
  54.    create the Mandelbrot set. The difference consists in the  fact  that  the
  55.    user  will  choose a C complex constant (MandelVroom will ask you to set a
  56.    Julia seed), then we will apply steps 1 thru 4 for different values of Z.
  57.  
  58.  What is MandelVroom
  59.  
  60.    MandelVroom is a Mandelbrot picture generator that allows you  to  explore
  61.    the  Mandelbrot set. It provides you with tools to zoom in and out, and to
  62.    move around it.  You can also create Julia curves whose pattern  is  based
  63.    on  a  location  in  the Mandelbrot set or in a previously generated Julia
  64.    curve.
  65.  
  66.    In this document, moving around in the Mandelbrot or Julia set is referred
  67.    to as navigation.  The section titled "Mandelbrot Navigation" outlines how
  68.    to use MandelVroom to get around the Mandelbrot set.  The  section  titled
  69.    "Julia  Navigation" contains a similar discussion about Julia curves.  For
  70.    the  most   part,   MandelVroom   treats  Mandelbrot  and  Julia  pictures
  71.    identically,  so,  for the rest of this introduction, we will use the term
  72.    Mandelbrot to mean Mandelbrot and Julia.
  73.  
  74.    Each pixel in a Mandlebrot picture represents a location  in  the  complex
  75.    plane.       The  color  of each pixel is determined by the number of times an
  76.    equation can be iterated at that pixel's location in  the  complex  plane.
  77.    When  you  calculate a Mandelbrot picture, the result is a two dimensional
  78.    array of iteration counts (one element per pixel).  One dimension  of  the
  79.    array  represents  the  width,  the  other  dimension is the height of the
  80.    picture in your picture window.
  81.  
  82.    MandelVroom uses this two dimensional array of heights  as  the  basis  to
  83.    create  a  three  dimensional  object.  If  you  imagine that a Mandlebrot
  84.    picture on your Amiga screen is flat on the  ground,  then  the  iteration
  85.    counts of the Mandelbrot equation can be thought of as altitude.
  86.  
  87.    All Mandelbrot programs convert this iteration count (from now on referred
  88.    to as altitude) into color.  Most of them  use  the  altitude  modulo  the
  89.    number  of  colors  to  determine  the color to assign to any given pixel.
  90.    MandelVroom uses contour map making techniques to map range of altitude to
  91.    color, and to give you direct control over picture coloration.
  92.  
  93.    MandelVroom lets you color your Mandelbrot pictures via a user  modifiable
  94.    contour  map  key  with  256  entries.  Each contour entry (referred to as
  95.    contour in the rest of this document) represents a range of altitudes  and
  96.    associated colors.
  97.  
  98.    You use the Contour Palette (the modifiable contour map  key),  to  choose
  99.    which  pen should be associated with a given range of altitudes.  There is
  100.    also a Color Palette, thru  which  you  can  choose  the  color  you  want
  101.    associated  with a contour entry.  You can set a contour pen by clicking a
  102.    command gadget and then touching the Color Palette.  You can set the lower
  103.    bound of a contour height range by pressing a  command  gadget,  and  then
  104.    clicking  someplace  in  the  Mandelbrot  picture you are trying to color.
  105.    This coloring scheme is  powerful  and  flexible,  and  gives  you  direct
  106.    control  over  the  coloration of your Mandelbrot pictures.  The Color and
  107.    Contour Palettes are discussed  in  more  detail  in  the  section  titled
  108.    "Coloration".
  109.  
  110.    As your Mandelbrot picture  is  calculating,  MandelVroom  remembers  each
  111.    pixel's  altitude,  so you can later recolor the picture without having to
  112.    recalculate it.  This is a real time saver, since Mandelbrot programs  are
  113.    notorious  for using huge amounts of CPU time (hours, possibly even days),
  114.    especially if you use floating point math and do not have  floating  point
  115.    hardware support.
  116.  
  117.    MandelVroom creates a separate task to generate each  of  your  Mandelbrot
  118.    pictures,  so  you  can  recolor  your picture while it is generating.  At
  119.    last, you can  do  SOMETHING  ELSE  with  your  machine  (and  MandelVroom
  120.    itself),  besides  watching  a  Mandelbrot   program   veeeery       sloooowly
  121.    generating a picture.  This makes MandelVroom uniquely Amiga.
  122.  
  123.    MandelVroom has a number of other significant features including:
  124.  
  125.                 - Graphics oriented "point-and-click" user interface  using Intuition
  126.                   menus and gadgets
  127.                 - Support for 320x200, 320x400, 640x200 and 640x400 screens
  128.                 - Support for EXTRA_HALFBRITE
  129.                 - Capability to  change  graphics  screen  modes  while  projects are
  130.                   generating
  131.                 - Support for PAL (European) Amigas
  132.  
  133.                 - 68020/68881 math support.  If you have a 68020 based Amiga,
  134.                   MandelVroom will be able to utilize the 68020 and its 68881 (if one
  135.                   is available).
  136.                   - Picture generator support for five math modes:
  137.                         - two 32 bit math modes (one for 68000, the other for 68020)
  138.                         - Amiga Fast Floating Point
  139.                         - IEEE floating point using Amiga math libraries
  140.                         - IEEE floating point using 68881 in assembly
  141.  
  142.                 - Capability of stopping then resuming picture generation.
  143.  
  144.                 - Project oriented.  Each picture is a separate project.
  145.                 - Loading and saving of projects to disk.
  146.                 - Multiple projects open and generate simultaneously.
  147.                 - Navigation is allowed across projects
  148.                 - A magnifying lens to aid in navigation
  149.  
  150.                 - On-Line help for all the gadgets and menu Items.
  151.  
  152.    More on each of these features later.
  153.  
  154.  START UP REQUIREMENTS
  155.  
  156.    MandelVroom can be executed on Amigas with 512K of RAM, but it really runs
  157.    much  better  if  you  have  more.   MandelVroom  requires  the  following
  158.    libraries to be available in your LIBS: directory:
  159.  
  160.                 mathtrans.library
  161.                 mathieeedoubbas.library
  162.                 icon.library (only if started from the WorkBench)
  163.  
  164.  Installing MandelVroom on a hard disk
  165.  
  166.    First you should create a directory on your hard disk. From your  CLI  you
  167.    could type:
  168.  
  169.           makedir dh0:Mandel
  170.  
  171.    then you should copy all the MandelVroom drawers and files to it:
  172.  
  173.           copy Mandelbrot:#? to dh0:Mandel all
  174.  
  175.    If you expect to run MandelVroom from the Workbench, then you need also to
  176.    create a drawer icon for its directory:
  177.  
  178.           copy Mandelbrot:projects.info to dh0:mandel.info
  179.  
  180.    Before running MandelVroom from the  hard  disk,  if  you  want  the  help
  181.    function available, you should:
  182.  
  183.           assign Mandelbrot: dh0:mandel
  184.  
  185.  Starting from the WorkBench
  186.  
  187.    If you are using a floppy drive, place your MandleVroom disk in any drive.
  188.    Double click the icon for the MandelVroom disk.
  189.  
  190.    If you are using a hard disk, double  click  its  icon,  then  select  the
  191.    Mandel drawer icon you created during the installation.
  192.  
  193.    After you display the MandelVroom icon, double clicking it will start  the
  194.    program  and  the  automatic  generation  of  the default project, a small
  195.    picture of the Mandelbrot set.
  196.  
  197.    You can also open the Projects drawer and double click one or more of  the
  198.    projects  previously  generated.  At startup, MandelVroom will display all
  199.    the selected projects.
  200.  
  201.  Starting from the CLI
  202.  
  203.    MandelVroom can also be started from the CLI.  It requires  a  minimum  of
  204.    30000 bytes of stack space.  MandelVroom's command syntax is as follows:
  205.  
  206.                 MandelVroom <project_name> <project_name> ... <project_name>
  207.  
  208.    If you supply one  or  more  project  names  (names  of  previously  saved
  209.    pictures),  MandelVroom  will open up and display each of the projects you
  210.    indicated.  If you don't provide any project name, MandelVroom will  start
  211.    up generating the default project, a small picture of the Mandelbrot set.
  212.  
  213.  HELP
  214.  
  215.    MandelVroom has an on line help facility.  If you pull down the Help  Item
  216.    in  the  Project  menu,  then  select  the  menu  Item you want help with,
  217.    MandelVroom will open a new window and display help  information  for  it.
  218.    You can also do the same for any gadget that is available for your use.
  219.  
  220.  THE PICTURE WINDOW
  221.  
  222.    MandelVroom displays projects in windows  called  picture  windows.   Each
  223.    picture  has  the standard system gadgets:  a close gadget, front and back
  224.    gadgets, a drag bar, and a resize gadget.  In the right hand margin  of  a
  225.    picture  window,  there  are four or five gadgets that are used to control
  226.    MandelVroom.  The use of each of these keys  will  be  described  in  more
  227.    detail later, but here is an outline of what the gadgets are for:
  228.  
  229.                 C - Current.  Makes this project the current project.
  230.  
  231.                 G (or S) - This gadget toggles between Generate and Stop.
  232.                         This is the start/stop button for the picture generator  used  by
  233.                         this project.
  234.  
  235.                 I - Zoom In.  Allows you to navigate into some region of a previously
  236.                         generated picture.
  237.  
  238.                 O - Zoom Out. Allows you to navigate out from your  current  location
  239.                         in the Mandelbrot or Julia picture.
  240.  
  241.                 J - Set Julia Seed.  This  gadget  is  present  only  in  Julia  type
  242.                         windows. It allows you to set the seed for a Julia project from a
  243.                         previously generated picture.
  244.  
  245.    The importance of the Current gadget will become apparent  when  you  have
  246.    more  than one project open at the same time.  Like Amiga windows, you can
  247.    have many projects open at one time, but only  one  can  be  "active"  for
  248.    input.       MandelVroom  allows  you to have many projects open, but the menu
  249.    and control panels only apply to the current one. You can quickly identify
  250.    the current project by the asterisk  in  the  Title  Bar  of  its  picture
  251.    window.
  252.  
  253.    The G (or S) button serves  two  purposes:  indicates  the  state  of  the
  254.    project  (generating  or  stopped), and modifies the state of the project.
  255.    When you press this button, it changes to an "S" for stop.  If,  for  some
  256.    reason,  you  don't  want  to  generate  the entire picture, press the "S"
  257.    (stop) button, and picture generation will stop.   Once  the  picture  has
  258.    stopped  generating,  either  because  you pressed the stop button, or the
  259.    picture completes generating, the "S" gadget  will  become  a  "G"  gadget
  260.    again.  This tells you that, if you press it, it will generate again.
  261.  
  262.    The function provided by the G (or S) button are also available  thru  the
  263.    Calculate  Generate menu. This menu also provides a third function, called
  264.    the Resume Item: it allows you to continue generating a project after  you
  265.    have  stopped  its  generation.  You can stop a project's generation, save
  266.    the project to disk, and quit MandelVroom.   Later,  you  can  reload  the
  267.    project,  and  resume  its  generation using the Calculate Generate Resume
  268.    menu Item.
  269.  
  270.    The Zoom In, Zoom Out and Set Julia Seed gadgets are used for  navigation.
  271.    They  are  discussed  in  detail  in  the  sections   titled   "Mandelbrot
  272.    Navigation" and "Julia Navigation".
  273.  
  274.    MandelVroom also offers you the option of having no  borders  around  your
  275.    picture. this options very convenient if you want to save an image in ILBM
  276.    format,  or  use  any of the programs that write an image of the screen to
  277.    disk. Please refer to the section Borderless later on in this document.
  278.  
  279.    All the functions provided by the gadgets  are  also  available  thru  the
  280.    MandelVroom's pull down menu system.
  281.  
  282.   THE MENUS
  283.  
  284.    MandelVroom  is  a  graphics  oriented  point-and-click  program  that  is
  285.    controlled  using menus and gadgets.  There are four menus associated with
  286.    MandelVroom:
  287.  
  288.         Project   - Items that are of global interest:  Load, Save and New
  289.                                 Project, request Help, Quit.
  290.  
  291.         Display   - Items to control MandelVroom's screen and picture windows
  292.                                 characteristics.
  293.  
  294.         Calculate - MandelVroom specific commands and control settings.
  295.  
  296.         Special   - Preset pictures and  Orbit definitions
  297.  
  298.    As an alternative to mouse selection of a menu Item, the  most  frequently
  299.    used  commands  also  have keyboard shortcuts. The keyboard sequence to be
  300.    used, when available, is indicated on the right of each menu Item.
  301.  
  302.    The Items in the Project, Display, Calculate and Special menus  will  each
  303.    be  explained  later  in  this  document. Next we are going to discuss the
  304.    Presets Item in the Special Menu.
  305.  
  306.  PRESETS
  307.  
  308.    Unless you are familiar with Mandelbrot programs, it may take you a  while
  309.    to find your way in the Mandelbrot set.  So this package contains a set of
  310.    predefined  Mandelbrot  and  Julia  pictures  as  starting  point for your
  311.    explorations. Later, the "Mandelbrot Navigation"  and  "Julia  Navigation"
  312.    sections will teach you how to create new projects from these presets.
  313.  
  314.    To open a preset project, press the right mouse button to  pull  down  the
  315.    Special Menu, Preset Item.  Each preset has a name that is also  its  menu
  316.    Item name.  The names were chosen on a whim by Kevin, so don't try to read
  317.    any cosmic significance in them.  Select a preset by releasing  the  right
  318.    mouse button over the one you want.
  319.  
  320.    MandelVroom should open  a  new  project  window  for  you  and  start  to
  321.    calculate  the  preset Mandelbrot or Julia picture into it.  If you decide
  322.    you don't want this project anymore, you can  close  it  by  pressing  the
  323.    project's  window  close  gadget.  If you want to make a larger version of
  324.    the same project, you can resize the window and press the Generate  gadget
  325.    in  the  right  margin of the project's window.  If you try this while the
  326.    project is generating, remember that you will have to press the G/S button
  327.    twice:  once to stop the project from being generated, and again to  start
  328.    it  generating.  You  can  also  use the Pan Item in the Calculate menu to
  329.    reposition the picture in the enlarged window.
  330.  
  331.    The next sections will describe how to  change  the  colors  and  contours
  332.    associated with the preset projects. First let us learn about coloration.
  333.  
  334.  COLORATION
  335.  
  336.    As already mentioned, coloration is the  same  for  Mandelbrot  plots  and
  337.    Julia  curves.  So,  in  this  section, the term Mandelbrot refers to both
  338.    Mandelbrot and Julia pictures.
  339.  
  340.    As already explained in the Introduction  (What  is  MandelVroom),  how  a
  341.    Mandelbrot  picture looks depends on two things: the colors you choose for
  342.    your color palette, and what contour setting you use to map altitude  into
  343.    color. So, let us explore the use of the Color Palette.
  344.  
  345.    Color Palette
  346.  
  347.          The Color Palette allows you to modify the color values in the  hardware
  348.          color  registers  (also  referred  to  as pens).  You can open the Color
  349.          Palette by selecting the Display menu Colors Item.
  350.  
  351.          You will notice that the Color Palette has three distinct areas.  On the
  352.          left, there is a box filled with all the pens  available  to  you.   The
  353.          center region of the color palette contains three potentiometer gadgets,
  354.          one for each of the three color components of a pen: red, green and blue
  355.          (RGB).   The  region  on  the  right contains 3 gadgets that allow you a
  356.          large degree of control in defining the colors associated with the pens.
  357.  
  358.          The potentiomenter gadgets can only apply to one pen at  a  time.   This
  359.          pen  is  referred  to  as the current pen, and is identified by a border
  360.          around it.  This border makes the current pen larger than the rest.  You
  361.          can make any pen the current pen by clicking  it  with  the  left  mouse
  362.          button.
  363.  
  364.          Once you have made current the pen you want, you can observe  its  color
  365.          component's  values  by  looking  at  the  characters  under each of the
  366.          potentiometer  gadgets.   These  characters  are  the  hexadecimal (base
  367.          16) values determining each of the color components. You  can  change  a
  368.          pen color by sliding any one of the potentiometer gadgets up or down, or
  369.          by  clicking  with  the  left  mouse  in  the  container area (above the
  370.          potentiometer to increase its value, below it to decrease).
  371.  
  372.          You can copy one pen RGB values into another pen using the  Copy  gadget
  373.          in the Color Palette.  To properly use the Copy gadget, you must perform
  374.          the following steps:
  375.  
  376.          1.  Make sure the pen whose color you want to copy is the current one.
  377.                  Click on it, if necessary.
  378.  
  379.          2.  Click the Color Palette Copy gadget.  The mouse cursor should
  380.                  change to indicate "TO".
  381.  
  382.          3.  Click the Color Palette pen you would like to change.  The color of
  383.                  the pen you chose in step one should now be copied into the new pen
  384.                  you picked.  The new pen also becomes the current pen.
  385.  
  386.          The rest of this documentation will  use  a  shorthand  notation  for  a
  387.          sequence  for  these kinds of command sequences.  The shorthand notation
  388.          for the copy command is:
  389.  
  390.          [ColorPen] COPY ColorPen
  391.  
  392.          The words in square brackets are optional.  Words in all upper case  are
  393.          commands  and  words  in  lower  case  are  parameters.   The "ColorPen"
  394.          parameter is a notation for a Color Palette pen.       Later  you  will  see
  395.          "ContourPen" used as a notation for Contour Palette pens.
  396.  
  397.          You can exhange two pen's colors by using the Exchg gadget.  The  syntax
  398.          for the Exchg command is as follows:
  399.  
  400.          [ColorPen] EXCHG ColorPen
  401.  
  402.          You can mix two pen's  colors  together  by  using  the  Spread  command
  403.          gadget.   When  you  spread between two gadgets, the pens in between the
  404.          two pens specified in the command sequence are blended  to  give  you  a
  405.          smooth change in color.  The format for the Spread command is:
  406.  
  407.          [ColorPen] SPREAD ColorPen
  408.  
  409.          If the above syntax definition is confusing,  remember  that  the  color
  410.          palette  operates  much  like  the  color palette in Deluxe Paint (tm of
  411.          Electronic Arts).
  412.  
  413.          Now that you have all the skills necessary to run the Color Palette,  we
  414.          are ready to use it in conjunction with the Contour Palette.
  415.  
  416.  CONTOURS
  417.  
  418.    In the Introduction, we mentioned that MandelVroom treats Mandelbrot plots
  419.    and Julia curves as three dimensional objects.  You can think of  them  as
  420.    sticking  straight  out of the screen toward you.  It takes a while to get
  421.    the feel for the three dimensional aspects of  the  picture.   MandelVroom
  422.    has  a  simple  query  tool that prints the height of a given pixel in the
  423.    screen's title bar.
  424.  
  425.    Query Height and Location
  426.  
  427.          If you have no commands outstanding, you can query  the  height  of  any
  428.          pixel  by placing the cursor over it and pressing the left mouse button.
  429.          If you slide the mouse around, while holding down the left mouse button,
  430.          the screen Title bar will  change  as  the  altitude  under  the  cursor
  431.          changes.  Slide it around, until you understand what is taller than what
  432.          in  the picture.  A good understanding of the tall parts and short parts
  433.          of a picture is imperative for a good use of the  Contour  Palette.   In
  434.          addition  to  displaying  the  height of the pixel under the cursor, the
  435.          Title bar also displays its location in the complex plane.  The location
  436.          is shown as the values of the r(eal) and i(maginary) coordinates.
  437.  
  438.    Definition of Contour
  439.  
  440.          As already mentioned in the introduction, a  contour  associates  a  pen
  441.          number (color) to a range of altitudes. To clarify this, let us start by
  442.          taking a look at a geographic map.
  443.  
  444.          A contour map of the United States might use white to represent the tops
  445.          of the Rockies, grey to represent the mountains down to  the  foothills,
  446.          green  to  represent  the land down to the prairies, and golden-brown to
  447.          represent the low level plaines.  The key to this contour map  has  four
  448.          entries (one per color).  Each entry has a range of altitudes that might
  449.          look like this:
  450.  
  451.                                 white - 13,000 feet to 6000 feet
  452.                                 grey  -  5,999 feet to 3000 feet
  453.                                 green -  2,999 feet to 1000 feet
  454.                                 brown -    999 feet to    0 feet
  455.  
  456.          In this simple example of a contour map key,  the  color  grey  altitude
  457.          range  can  really be expressed as everything at, or above 3000 feet and
  458.          below 6000 feet.
  459.  
  460.          Note that, in this map, the colors are  only  used  once,  so  there  is
  461.          little  ambiguity  about  what the color grey means.  Also, there are no
  462.          altitudes that are not accounted  for  (except  those  taller  than  the
  463.          mountains, and below sea-level).
  464.  
  465.          If you assume that all altitudes  from  13000  feet  down  to  zero  are
  466.          represented  by  some  color,  then  the  map  key  contains   redundant
  467.          information.  In MandelVroom, each contour  only  has  one  height:  the
  468.          lower  bound  of the associated range of heights.  The high bound of the
  469.          height range associated with this contour,  is  given  by  the  previous
  470.          contour's lower bound minus one.  In other words, it takes 2 contours to
  471.          represent a range of heights. So the above example would look like this:
  472.  
  473.                                 white - infinity down to 6000 feet (contour 0)
  474.                                 grey  -                  down to 3000 feet (contour 1)
  475.                                 green -                  down to 1000 feet (contour 2)
  476.                                 brown -                  down to        0 feet (contour 3)
  477.  
  478.          A result of this is that contour  zero  (the  leftmost  contour  in  the
  479.          Contour  Palette)  represents  the  tallest  contour, and that all other
  480.          contours to the right of it should be lower in altitude (for  the  range
  481.          to  make  sense).   All  contours  that  do  not  follow  this  rule are
  482.          considered invalid and are ignored by  MandelVroom.   The  potentiometer
  483.          gadget knobs for valid contours are brightly colored, while the ones for
  484.          invalid contours are dimly colored.
  485.  
  486.          MandelVroom associates a pen number to each contour (the lower bound  of
  487.          a  range  of heights). A consequence of contours decreasing in height is
  488.          that, when you color pictures using  MandelVroom,  you  generally  color
  489.          them  from  the  top  down.  The  best  way is to start by modifying the
  490.          leftmost contours (the tallest) and work your way to the  lowlands  (the
  491.          rightmost  contours).   The section titled "Coloring Pictures" discusses
  492.          this in detail.  Now, we are ready to  learn  how  to  use  the  Contour
  493.          Palette.
  494.  
  495.    Opening the Contour Palette
  496.  
  497.          You can open the Contour Palette by selecting the Display Contours  menu
  498.          Item.  You should see a big window open across the bottom of the screen.
  499.          The Contour Palette has four major areas:
  500.  
  501.          - The title bar, which also gives info on the current contour.
  502.  
  503.          - The command gadgets for editing the  contours.  This  is  the  row  of
  504.            buttons below the title bar.
  505.  
  506.          - The Color Bar, that displays the pens for all 256 contours.
  507.            It is directly below the command gadgets.
  508.  
  509.          -The Contour Editing section that is below the  Color  Bar  and  on  the
  510.           left side of the window.
  511.  
  512.          The command gadgets are used to manipulate the contour heights  and  pen
  513.          numbers.       They  allow  you  to  affect  contour  heights  and pens both
  514.          individually and in groups of consecutive contours.
  515.  
  516.          The Color Bar and the Contour Editing  section  are  interrelated.   The
  517.          Color Bar shows you all 256 pens associated with the contours, while the
  518.          Contour  Editing  section  gives  you  a  detailed look at 32 of the 256
  519.          contours.  It is analogous to an editor window that gives  you  a  small
  520.          section  of  a big file.  Inside the Color Bar, there is a box around 32
  521.          consective colors.  This box indicates which 32 of the 256 contours  are
  522.          being  displayed  in the Contour Editing section.  You can slide the box
  523.          around by depressing and holding the left mouse button down  inside  the
  524.          it, then moving the mouse left and right.  For now, you should leave the
  525.          slider  at  the  left  edge  of  the Color Bar.  This leaves the Contour
  526.          Editing section displaying the first 32 contours.
  527.  
  528.    The Contour Title Bar
  529.  
  530.          The title bar keeps you informed about the contours you are working  on.
  531.          As  you  select  a  contour entry, it will display information about the
  532.          C(ontour) number you  are  changing,  the  P(en)  associated  with  that
  533.          contour number, and its H(eight) or altitude range.
  534.  
  535.          Here is an example title bar:
  536.  
  537.                                         C: 1   P: 4  H: 1022-137
  538.  
  539.          In this case, the current contour is contour one.  The pen  for  contour
  540.          one  is  pen four, and contour one range of heights is 1022 down to 137.
  541.          Remember that this means contour zero low bound height is 1023.
  542.  
  543.    Contour Editing
  544.  
  545.          The Contour Editing section is used to modify a contour height  or  pen.
  546.          You can change individual contours using the Contour Palette Set command
  547.          gadget.   You  can  change  a  range of contour heights using the Smooth
  548.          gadget.  You can change a range of contour pens using the Cut, Copy, and
  549.          Paste command gadgets.
  550.  
  551.    Contour Editing gadgets
  552.  
  553.          Each of the contours in the Contour Editing section  is  represented  by
  554.          one  column  which  contains  a  pen gadget (on top) and a potentiometer
  555.          gadget.  The pen gadget is used to  select  a  contour  as  the  current
  556.          contour,  so  you  can  edit  it.   When you touch a contour pen gadget,
  557.          MandelVroom draws a box around it to indicate that it is current.
  558.  
  559.          A contour potentiometer gadget serves two purposes.  The first is to  be
  560.          a  rough indicator of the height of a given contour (the Contour Palette
  561.          Title Bar contains the accurate value of the current contour's  height).
  562.          A contour potentiometer gadget also gives you a crude way of setting the
  563.          height  of  a contour. As you will soon see, the Set command gadget is a
  564.          much better way to set it.
  565.  
  566.    Changing Contour Heights
  567.  
  568.          As we mentioned earlier, you can change a contour height by sliding  its
  569.          potentiometer  gadget up and down, or by clicking with the left mouse in
  570.          the container area (above the potentiometer to increase its value, below
  571.          it to decrease). You can also use the Set  command  gadget  to  set  the
  572.          current  contour  height  to the height associated with a given pixel in
  573.          your Mandelbrot (or Julia) picture.   The  syntax  of  the  Set  command
  574.          gadget (for changing height) is:
  575.  
  576.          [ContourPen] SET "pixel-pick"
  577.  
  578.          In English, this means:  click on a contour pen gadget (if necessary) to
  579.          set the current pen.  Click the Set command gadget.  Click on a pixel in
  580.          the picture you are coloring.  MandelVroom  will  determine  the  height
  581.          associated  with  the  pixel  you  clicked,  and use that as the current
  582.          contour height.  This is very useful, and gives you direct control  over
  583.          contour heights.
  584.  
  585.          Before we go on, please take note of the syntax.  In the  Color  Palette
  586.          section, we used "ColorPen" to represent the action of clicking a  Color
  587.          Palette  pen.   In this section we have introduced Contour Palette pens.
  588.          We use "ContourPen" to  represent  the  action  of  clicking  a  Contour
  589.          Palette pen.
  590.  
  591.          The contour pens serve two purposes.  The first is an indication of  the
  592.          color  of  given  contour.   The  second  is  to  select  contour(s)  as
  593.          parameters for commands.  At times, you select a contour to  change  its
  594.          color.  Other times you select a contour to change its height. In either
  595.          case, you press a contour pen to make a contour selection.
  596.  
  597.    Changing a Range of Heights
  598.  
  599.          The Set command gadget is usefull, but tedious if you want to use it  to
  600.          set  each of the 256 contour heights.  You can change a range of contour
  601.          heights by using the Set command in conjunction with the Smooth command.
  602.  
  603.          Suppose you used the Set command to set contour one's height to 256  and
  604.          contour twenty's height to 56. If you smooth the heights between contour
  605.          one and twenty, the contours in between will have the following heights:
  606.  
  607.                                          Contour        Height
  608.                                                 2                 246
  609.                                                 3                 236
  610.                                                 4                 226
  611.                                                 :                  :
  612.                                                 :                  :
  613.                                            18              76
  614.                                            19              66
  615.  
  616.          The smoothed contours have been evenly  spaced  (in  terms  of  height).
  617.          This is a very handy tool.  The syntax of the Smooth command is:
  618.  
  619.          [ContourPen] SMOOTH ContourPen
  620.  
  621.          There are two special cases of the Smooth command.  The first has to  do
  622.          with illegal contour height situations. If contour two has a height that
  623.          is LOWER than contour twenty (an illegal contour situation), the heights
  624.          are decreased by one.  This can be handy if you want a range of contours
  625.          to  decrease by one.  It can be confusing if you don't know what you are
  626.          doing.
  627.  
  628.          The second special case has to do with the gadget labeled Last. Pressing
  629.          this gadget is equivalent to pressing contour 255's contour pen  gadget.
  630.          This  saves you the effort of sliding the Color Bar Box to the right and
  631.          pressing the rightmost contour (and probably sliding the Color  Bar  Box
  632.          back to where you were).
  633.  
  634.          When you Smooth to Last, the contour heights are decreased  by  one,  no
  635.          matter  what  the  height  of  the  last contour.  So the syntax for the
  636.          Smooth command really is:
  637.  
  638.          [ContourPen] SMOOTH ContourPen | LAST
  639.  
  640.          In human terms, this means: once you have pressed the Smooth gadget, you
  641.          can press a contour pen gadget, or the Last gadget.
  642.  
  643.    The Ceiling gadget
  644.  
  645.          The Ceiling gadget is the single potentiometer gadget to  the  right  of
  646.          the  Contour Editing section.  This gadget does not affect your picture.
  647.          It only affects the way contour heights are  displayed  in  the  contour
  648.          potentiometer  gadgets.   It  is most usefull for viewing those contours
  649.          whose heights are relatively low.
  650.  
  651.          If you pull the Ceiling gadget down to a height of fifty, then you get a
  652.          good view of those contour heights that are fifty  or  lower.   If  this
  653.          confuses  you,  slide the Ceiling around a few times and look at how the
  654.          contour potentiometers change.  Play with it enough to convince yourself
  655.          that it does not affect the contour heights.  If you  cannot  figure  it
  656.          out, just pull it up to the top and ignore it.
  657.  
  658.          If you pull down the Ceiling gadget, and some contour heights are taller
  659.          than the Ceiling, these contour potentiometer gadgets will be  glued  to
  660.          the  top  of  the  potentiometer container.  If you are trying to move a
  661.          contour potentiometer, and, when you release it, it snaps  back  to  the
  662.          top of the container, then it is taller than the Ceiling.  You must pull
  663.          the Ceiling to the top of its container to alleviate this problem.
  664.  
  665.    The Paint gadget
  666.  
  667.          After you have changed the contours, you will want to see what effect it
  668.          has on your picture.  To do this, press the Paint  gadget.   MandelVroom
  669.          will  then redraw your picture using the new contour settings.  Any time
  670.          you change any contours (heights or pens), you need to press  the  Paint
  671.          command gadget to see its effect on your picture.
  672.  
  673.    Changing Contour Pen colors
  674.  
  675.          The simplest way of changing the color of a contour pen is by using  the
  676.          Set  command  gadget.   Before trying to use the Set command to do this,
  677.          you must have the Color Palette open.  To do this, pull  down  the  Edit
  678.          Colors menu Item.
  679.  
  680.          The syntax of the Set command is as follows:
  681.  
  682.          [ContourPen] SET ColorPen
  683.  
  684.          This means: click a Contour Palette pen to make it current if  need  be.
  685.          Click  the Set command gadget, then click the Color Palette pen that you
  686.          want used as the contour pen.
  687.  
  688.          After you complete the command sequence, you should see that the contour
  689.          pen color has changed to match the pen you chose from the Color Palette.
  690.          You should also see that the Color Bar has changed to match the new pen.
  691.  
  692.          It would be quite tedious to set each individual contour pen  using  the
  693.          Set command gadget, so MandelVroom provides you with a set of tools that
  694.          allow you to work with a list of pens called pen patterns.
  695.  
  696.    Contour Pen Patterns
  697.  
  698.          The pattern tools (Cut, Copy and Paste) allow you to manipulate a  range
  699.          of  pens  within  the Contour Palette.  These commands allow you to copy
  700.          the pens from a range of contours into a holding register, and then copy
  701.          them from the holding register into another range of contour pens.
  702.  
  703.    Copying Pen Patterns
  704.  
  705.          The Copy command allows you to copy a list of pen numbers  from  one  of
  706.          two  places  into  the  holding  register.   You  can  copy  a  range of
  707.          consecutive  pen  numbers  from  the  Color  Palette  into  the  holding
  708.          register.   You  can  also  copy  a list of pen numbers from the Contour
  709.          Palette into the holding register.  Once in the  holding  register,  you
  710.          can paste it into a set of contour pens using the Paste command gadget.
  711.  
  712.          The Copy command has two syntax formats.  The first is for copying  pens
  713.          from the Color Palette, the other for the Contour Palette.
  714.  
  715.          [ColorPen]   COPY ColorPen
  716.          [ContourPen] COPY ContourPen
  717.  
  718.          Please keep in mind that there is a difference between the Color Palette
  719.          Copy command, and the Contour Palette Copy command.  It  is  unfortunate
  720.          that  both command gadgets have the same name.  They have very different
  721.          meanings.
  722.  
  723.    Cutting Pen Patterns
  724.  
  725.          The Cut command  copies  a  range  of  contour  pens  into  the  holding
  726.          register, and then removes the range of pens from the contour list.  The
  727.          pens  to  the  right of the cut section are shifted to the left to cover
  728.          the removed pens.  The syntax for the Cut command is:
  729.  
  730.          [ContourPen] CUT ContourPen
  731.  
  732.    Pattern Direction Sensitivity
  733.  
  734.          The  Contour   Palette  Copy,  Cut  and  Paste  commands  are  direction
  735.          sensitive.  If, for example, you perform the following mouse actions:
  736.  
  737.                  1.  Click contour 3's pen
  738.                  2.  Click the contour Copy command
  739.                  3.  Click contour 18's pen
  740.  
  741.          then, contour three's pen is the first to go into the holding  register,
  742.          followed  by contour four through contour eighteen's pen.  If we swapped
  743.          steps one and three, then contour eighteen's pen would be the first  pen
  744.          in  the  holding  register.  This is very handy.  It is quite useful for
  745.          reversing, or making mirror images of, pen patterns.  More on this after
  746.          we have learned to paste pen patterns.
  747.  
  748.    Pasting Pen Patterns
  749.  
  750.          Once you have a pattern in the holding register, you can overlay a range
  751.          of contour pens with it.  The syntax for the Paste command is as follows:
  752.  
  753.          [ContourPen] PASTE ContourPen
  754.  
  755.    Pattern Direction Sensitivity Tricks
  756.  
  757.          Keep in mind that the Paste command overlays (does not insert) pens into
  758.          the  contour  pen  list.       By  taking  advantage  of  pattern  direction
  759.          sensitivity  when  copying and pasting, it is easy to reverse a range of
  760.          contour pens.  Example:
  761.  
  762.                  1.  Click contour 0's pen
  763.                  2.  Click the Copy command
  764.                  3.  Click contour 31's pen
  765.  
  766.                  4.  Click the Paste command
  767.                  5.  Click contour 0's pen
  768.  
  769.          This should reverse the pattern of pens in contours zero through contour
  770.          thirty-one.
  771.  
  772.          You can also easily make a pattern that is symmetric around a given pen.
  773.          Try this one:
  774.  
  775.                  1.  Click contour 15's pen
  776.                  2.  Click the Copy command
  777.                  3.  Click contour 0's pen
  778.  
  779.                  4.  Click contour 15's pen
  780.                  5.  Click the Paste command
  781.                  6.  Click contour 30's pen
  782.  
  783.          Insightful use of pattern direction sensitivity can be very  helpful  in
  784.          creating extremely complex patterns with very few mouse actions.
  785.  
  786.    Pattern Repetition
  787.  
  788.          When you Cut or Copy a pattern and put it into the holding register, the
  789.          pattern has a length.  When  you  paste  this  pattern,  the  number  of
  790.          contours to be pasted to may be bigger or smaller than the length of the
  791.          pattern in the holding register.
  792.  
  793.          If the pattern in the holding register is longer  than  needed  for  the
  794.          Paste  command, then MandelVroom only pastes as much as indicated by the
  795.          Paste command.  If the pattern in the holding register is shorter,  then
  796.          the  pattern is repeated until the length indicated by the Paste command
  797.          is achieved.  This can be very handy, especially for repeating symmetric
  798.          patterns like the one we created earlier.
  799.  
  800.    Cut, Copy and Paste to Last
  801.  
  802.          Remember that the gadget named Last is a short hand for pressing contour
  803.          255's pen gadget.  You can use the Last gadget in conjunction  with  the
  804.          pattern  commands.   A  more  accurate definition of the pattern command
  805.          syntax is:
  806.  
  807.          [ContourPen] COPY  ContourPen | LAST
  808.          [ContourPen] CUT       ContourPen | LAST
  809.          [ContourPen] PASTE ContourPen | LAST
  810.  
  811.          Using the Last gadget in conjunction with the Paste gadget  is  a  great
  812.          way of repeating a pattern for the rest of the contour list.
  813.  
  814.    Dragging the Color Bar Box
  815.  
  816.          At any time during the Contour Palette range oriented commands, you  can
  817.          drag the Color Bar Box to select which thirty two contours are available
  818.          to  you  in  the  Contour Editing section.  So the most accurate form of
  819.          Contour command syntaxes are:
  820.  
  821.          [ContourPen] [drag_bar_box] CUT        [drag_bar_box] pen | LAST
  822.          [ContourPen] [drag_bar_box] COPY       [drag_bar_box] pen | LAST
  823.          [ContourPen] [drag_bar_box] PASTE  [drag_bar_box] pen | LAST
  824.          [ContourPen] [drag_bar_box] SMOOTH [drag_bar_box] pen | LAST
  825.  
  826.    The Mod(ulo) gadget
  827.  
  828.          The Mod gadget is used to control the spacing of contour pens used  with
  829.          the  Cut,  Copy  and  Paste commands.  If you set the Mod gadget to two,
  830.          then, when you Paste pens, every other pen will be pasted.  This can  be
  831.          very  handy  for  mixing two patterns together.  As an example you could
  832.          use it to make all the even pens green and all the odd pens blue.
  833.  
  834.          You can set the Mod gadget to any positive integer.  Beware, that,  when
  835.          you  set the Mod gadget to a value, it stays that way.  If you change it
  836.          to some value other than one, you should change it back to one  as  soon
  837.          as you are done, or it will probably bite you back you very quickly.
  838.  
  839.  AUTOCONTOUR
  840.  
  841.    The Autocontour commands are used  to  set  the  contour  heights  of  the
  842.    current  picture  in  a  way  that will evenly distribute them amongst the
  843.    contours.
  844.  
  845.    You are responsible for choosing the pen patterns, pattern length and  pen
  846.    colors.  Autocontour  will  choose  heights  for your contours.  Length of
  847.    pattern affects how much detail is shown in your  picture.  Refer  to  the
  848.    section  on  Coloring  Pictures  for  a  more   in-depth   discussion   on
  849.    understanding a Mandelbrot picture.
  850.  
  851.    To use the Autocontour command, set a  pattern  of  pens  in  the  contour
  852.    palette and pull down one of the two Autocontour menu Items.
  853.  
  854.    When you choose Autocontour I, MandelVroom performs the following steps:
  855.  
  856.    1. Count number of contours in contour palette.  The program  starts  with
  857.           the righmost contour and begins counting from the first contour with  a
  858.           pen number not equal to 1.
  859.  
  860.    2. Calculate number of pixels in the picture minus the  number  of  pixels
  861.           that have an altitude equal to the MaxIteration for this picture.
  862.  
  863.    3. Divide the number of pixels from step 2 by the number of contours  from
  864.           step 1.
  865.  
  866.    4. Calculate a histogram of the number of pixels at each of  the  possible
  867.           heights.
  868.  
  869.    The number calculated in step 3  is  the  average  number  of  pixels  per
  870.    contour.   Using  the  histogram  data,  the  program allocates heights to
  871.    contours from tallest to shortest.
  872.  
  873.    There are two flavors of AutoContour.  The above  description  applies  to
  874.    the first of the two flavors.  The second differs from the first, in that,
  875.    once  a  given  contour's  height  range  is  equal to one, all subsequent
  876.    contour height ranges are set to one.
  877.  
  878.  COLOR CYCLING
  879.  
  880.    Pulling down the Display menu Cycling Item will give  you  access  to  the
  881.    Color  Cycling  control  panel.  Color cycling is an animation method that
  882.    treats a range of consecutive pens in the  Color  Palette  as  a  rotation
  883.    register.
  884.  
  885.    When "cycling", the program moves one pen's color  components  to  another
  886.    pen.   A  range  of  consecutive  pens also has a direction and a rotation
  887.    speed.
  888.  
  889.    To use the Color Cycling Palette, you must also  have  the  Color  Palette
  890.    open.  You can do this by pulling down the Display menu Colors Item.
  891.  
  892.    On / Off
  893.  
  894.          This gadget enables and disables color  cycling.       The  purpose  of  the
  895.          gadget  toggles with usage.  If cycling is on, then pressing it turns it
  896.          off (and vice versa.)
  897.  
  898.    Range
  899.  
  900.          The Color Cycling control panel allows you four color cycling ranges.
  901.  
  902.          Usage:
  903.  
  904.          [ColorPen] RANGE ColorPen
  905.  
  906.          This command gadget allows you to configure which pens are  included  in
  907.          the current cycling range.
  908.  
  909.          Pressing the Range gadget stops color cycling.  Press the On/Off  gadget
  910.          to restart cycling.
  911.  
  912.          The cycling range number gadgets (C1, C2, C3 and C4) allow you to select
  913.          the range number you want to configure.  Once selected, you can use  the
  914.          Range, Speed, and Direction gadgets to configure the range number.
  915.  
  916.          Pressing these gadgets stops color cycling.  Press the On/Off gadget  to
  917.          restart cycling.
  918.  
  919.    Direction
  920.  
  921.          This gadget configures the direction of rotation for the current cycling
  922.          range.  Pressing the direction gadget toggles the direction of rotation.
  923.  
  924.          Pressing the direction gadget stops color  cycling.   Press  the  On/Off
  925.          gadget to restart cycling.
  926.  
  927.    Speed
  928.  
  929.    This gadget configures the speed  of  rotation  for  the  current  cycling
  930.    range.       Dragging the knob changes the speed.  You can also do incremental
  931.    changes  to   the  speed  by  clicking  in  the  container  of  the  speed
  932.    potentiometer.
  933.  
  934.    Using the speed gadget stops color cycling.  Press the  On/Off  gadget  to
  935.    restart cycling.
  936.  
  937.  COLORING PICTURES
  938.  
  939.    Now that you know how to use the tools, you must understand the subject
  940.    matter you are trying to color. Watching  a  number  of  people  run  this
  941.    program,  it  seems that the biggest stumbling block is their grasp of the
  942.    way MandelVroom treats Mandelbrot and Julia pictures as three  dimensional
  943.    objects.   We recommend you use the Query Height feature (described at the
  944.    beginning of the Contour section) to get a feeling for which  parts  of  a
  945.    given picture are considered tall, and which are considered short.
  946.  
  947.    In general, Mandelbrot and Julia pictures are made up of  three  kinds  of
  948.    regions.   The  lower  regions  of  a  picture  can be identified by large
  949.    sweeping curved areas that are all the same color.  The larger the curves,
  950.    the lower the altitude.  If your eye moves in a direction that leads it to
  951.    smaller and smaller sweeping curves, you are moving toward taller parts of
  952.    the picture.  Eventually, these curves get  so  small  that  they  are  no
  953.    longer  individually  identifiable.   When  the  curves  get so small, the
  954.    heights associated with pixels seem to become random or chaotic.  This  is
  955.    the second kind of region found in Mandelbrot and Julia pictures.
  956.  
  957.    Typically, these intermediate regions are the ones  that  we  humans  find
  958.    interesting  in  Mandelbrot  and Julia pictures.  When colored properly, a
  959.    structure becomes apparent and things appear ordered.
  960.  
  961.    The third kind of region's pixels are the tallest in  the  picture.   They
  962.    are  all  the  same height.  In most Mandelbrot pictures, these pixels are
  963.    typically (but not necessarily) colored black.  These  pixels  are  unlike
  964.    all  the other pixels in the picture, because they have had the Mandelbrot
  965.    equation iterated the maximum number of times (refer back to  the  section
  966.    titled "What is a Mandelbrot set").
  967.  
  968.    To make things more clear, let us consider the preset picture  "Big  Brot"
  969.    generated when MandelVroom first starts up.  In the center of the picture,
  970.    there  is a large black object that looks like a squashed bug.  The pixels
  971.    that make up the bug shape are in the tallest part of the  picture.   Just
  972.    oustside of the black region are the tall, at first  look  random, pixels.
  973.    At  the  outer  edges of the picture, there are large regions that are all
  974.    the same color (and height).
  975.  
  976.    If you look at the Contour Palette associated with Big Brot, you will find
  977.    that contour zero is used to color the bug part of the  picture.   Contour
  978.    zero's pen is black, just like the bug.  The next few contours are used to
  979.    color the region just outside the bug's body.
  980.  
  981.    If you select contour one's pen, then look in the  Contour  Palette  Title
  982.    Bar, you will notice that the height range associated with this contour is
  983.    quite  large.   This  is  because there are few pixels in the picture that
  984.    fall into  this  height  range.   By  making  the  range  large,  we  have
  985.    collected,  gathered  these  pixels  together  under the same color.  This
  986.    tends to give them a structure that might otherwise not be apparent.
  987.  
  988.    If you move farther to the right (increasing  contour  numbers)  you  will
  989.    notice  that  the  range  of  each  of the successive contour heights gets
  990.    smaller and smaller.  In  this  picture  the  contour  height  range  goes
  991.    rapidly  to  one, which we do to make each of the large sweeping curves in
  992.    the lower regions a different color (and therefore identifiable).
  993.  
  994.  LEARNING FROM PRESETS
  995.  
  996.    We recommend you load a number of the preset pictures found in the  Preset
  997.    Menu.   By  generating  these  pictures, and examining their contours, you
  998.    should be able to see how the Contour Palette was used to color  pictures.
  999.    Remember  that  you  can generate a preset by pulling down the name of the
  1000.    preset you want to generate, and releasing the right mouse button. If  you
  1001.    have  more than one preset generating at once, you can make a given preset
  1002.    project current by pressing its "C"  button.   If  you  have  the  Contour
  1003.    Palette open on the screen, then it will be updated to reflect the current
  1004.    project's  contours.   If  you didn't have the Contour Palette open, then,
  1005.    when you open it, it will show you the contour settings  for  the  current
  1006.    project.
  1007.  
  1008.    Now that you have generated a preset project, you  should  play  with  the
  1009.    Color  and  the  Contour  Palette.   The  first few times you try to color
  1010.    pictures, and until you become familiar with using the palettes, you  will
  1011.    probably  get  strange, even ugly combinations of colors and shapes.  But,
  1012.    you can always recreate the presets using the  Preset  Menu,  and  restart
  1013.    your explorations from there.
  1014.  
  1015.    Just remember: if you get a picture that you really  like,  use  the  Save
  1016.    Item in the Project menu to save it to disk. You can then reload it, using
  1017.    the  Load  Item  in  the  Project menu, then change it as much as you want
  1018.    without risk of loosing it.  You could lose a  picture,  when  you  go  to
  1019.    modify something already beautiful and make it ugly.
  1020.  
  1021.    You could also clone the picture (see below in the section New  Projects),
  1022.    so as to have two copies open at the same time.  Then, when you change one
  1023.    copy,  you  can  compare  the  two  versions and decide which one you like
  1024.    better.
  1025.  
  1026.    Oh, by the way, many of the best  pictures  in  the  Project  drawer  were
  1027.    colored by accident. You can often get really beautiful effects when least
  1028.    expecting  them.   The  preset  "Valley  Gal"  is  a  wonderful example of
  1029.    accidental beauty.
  1030.  
  1031.  ONWARD TO NAVIGATION
  1032.  
  1033.    Now that you have learned how to change the colors of the preset pictures,
  1034.    it is time to go off and find your own "nice" subject  matters  to  color.
  1035.    To  do  that, you will want to open new projects and select regions of the
  1036.    presets as the starting points for your explorations.  As  you  are  going
  1037.    through the next sections, remember that the "interesting" objects to zoom
  1038.    into are generally the taller parts of the pictures.
  1039.  
  1040.    The section titled "Mandelbrot Navigation"  will  teach  you  how  to  use
  1041.    MandelVroom  to move around within the Mandelbrot set.  The section "Julia
  1042.    Navigation" will make  it  clear  how  Julia  curves  are  different  from
  1043.    Mandelbrot  plots.   It  will  also  teach  you  how to create an infinite
  1044.    variety of Julia curves.
  1045.  
  1046.    New Projects
  1047.  
  1048.          MandelVroom allows you to have as many projects as you have RAM for, and
  1049.          they can be of two kind: Mandelbrot or Julia.
  1050.  
  1051.          You can open new Mandlebrot projects by pulling  down  the  New  Project
  1052.          Item MAND sub-Item.  You can open new Julia projects by pulling down the
  1053.          New Project Item JULIA sub-Item.
  1054.  
  1055.          Although you can have many projects open at the same time, only  one  of
  1056.          them  is  considered  the  current project. You can identify the current
  1057.          project by an asterisk in the title bar of its picture window.
  1058.  
  1059.          Whenever you open a new project, that project is made current.  You  can
  1060.          also  make any project the current one by clicking the "C" gadget in the
  1061.          right margin of its picture window. In addition, you can pull  down  the
  1062.          Projects  menu  Current  Item  from  within  the window you want to make
  1063.          current.
  1064.  
  1065.          If the current project is of type MAND and you pull down the New Project
  1066.          Item MAND sub-Item, then MandelVroom will make the new project a copy of
  1067.          the current one, and then mark it as current.
  1068.  
  1069.          In a similar way, if you open a new Julia project from a current project
  1070.          that has the type of JULIA, then MandelVroom will make the new project a
  1071.          duplicate of the current one.  The new project is  then  marked  as  the
  1072.          current project.
  1073.  
  1074.          If you open a new Julia project from a Mandelbrot project, then you will
  1075.          be able to generate a Julia curve based on  the  originating  Mandelbrot
  1076.          project.
  1077.  
  1078.          After learning how to navigate, you will  really  like  having  multiple
  1079.          projects, because you can use each one of them as the basis for a number
  1080.          of  excursions.  You will also be able to have a sequence of pictures to
  1081.          record your journey.
  1082.  
  1083.          Mandelbrot and Julia projects are treated identically in coloration, but
  1084.          they are subtly different for navigation.  The next  few  sections  will
  1085.          teach  you  about  Mandlebrot  pictures  and  navigation.   Then we will
  1086.          examine how Julia curves differ from Mandlebrot plots.
  1087.  
  1088.  MANDELBROT Navigation
  1089.  
  1090.    When MandelVroom starts up, it generates a picture of the Mandelbrot  set.
  1091.    All  the  Mandelbrot  pictures  that  you  have  ever  seen, are magnified
  1092.    versions of small portions of this picture.  There are an infinite  number
  1093.    of unique pictures within this picture.
  1094.  
  1095.    Using a variable sized rectangular box called the  Zoom  Box,  MandelVroom
  1096.    allows you to select what parts of some picture you want to be used as the
  1097.    basis of the next picture.
  1098.  
  1099.    The next two  sections,  somewhat  more  technical,  are  aimed  at  users
  1100.    interested  in  better  understanding  how  MandelVroom  navigation works.
  1101.    Other users can move directly to the section on Zooming in.
  1102.  
  1103.    Windows and complex plane
  1104.  
  1105.          In MandelVroom, a Mandelbrot picture window represents a region  of  the
  1106.          complex  plane.   Each  pixel  corresponds to a discrete location within
  1107.          that region.  The horizontal axis within a picture window represents the
  1108.          real component of the complex plane.  The vertical axis  represents  the
  1109.          imaginary component.
  1110.  
  1111.    Corner/Length coordinate system
  1112.  
  1113.          When you are navigating, MandelVroom keeps track  of  the  location  (in
  1114.          complex plane terms) of the upper left hand corner pixel, and the length
  1115.          of  the  imaginary  side of your complex region.  Given the size of your
  1116.          picture window, MandelVroom calculates the length of the real  component
  1117.          of the region that your picture window represents.
  1118.  
  1119.    Zooming In
  1120.  
  1121.          The Mandelbrot picture that you get depends on the region in the complex
  1122.          plane that you have selected.  Fortunately, MandelVroom does  not  force
  1123.          you  to think about your picture in complex plane terms.  It gives you a
  1124.          visual method for choosing new regions over which to calculate pictures.
  1125.  
  1126.          We will to start from an already calculated picture. Then we will use  a
  1127.          rectangular  box,  called  the  Zoom Box, to select a region, within the
  1128.          existing picture, as the one used to calculate the next picture. We call
  1129.          this process of choosing smaller regions within larger regions  "Zooming
  1130.          In".
  1131.  
  1132.          The steps in zooming in are simple:
  1133.  
  1134.            1. Open a New Project for your new picture.
  1135.            2. Open the Zoom Box in a previously calculated picture.
  1136.            3. Position and size the Zoom Box as desired.
  1137.            4. Generate the new picture in your new project.
  1138.  
  1139.          You already learned how to open a new project in the section titled "New
  1140.          Projects".  The next few sections tell you how  to  open,  position  and
  1141.          size the Zoom Box as desired.  Pressing the "G" button in the right hand
  1142.          margin  of  your  new picture window causes MandelVroom to generate your
  1143.          new picture.
  1144.  
  1145.    The Zoom box
  1146.  
  1147.          The Zoom Box is a rectangular box that you  can  place  in  projects  to
  1148.          delimit  the  area  you want to be used for your next picture.  Once you
  1149.          open the Zoom Box in a picture, it will look like a line drawing  of  an
  1150.          Intuition  window.   The  controls are intended to be intuitive to Amiga
  1151.          owners.  It has a drag bar, close gadget, and two resize  gadgets.   The
  1152.          next  section  tells  you how to open the Zoom Box.  Subsequent sections
  1153.          tell you how to use the Zoom Box gadgets.
  1154.  
  1155.          Opening and Closing
  1156.  
  1157.            The most convenient way of opening a Zoom Box  is  to  press  the  "I"
  1158.            gadget  in  the  right  margin of your new project window.  You should
  1159.            notice that your mouse cursor has changed so that it contains the word
  1160.            "TO" in it.  This tells you that you are ready to open a Zoom Box in a
  1161.            picture window.  To complete the opening  of  your  Zoom  Box,  follow
  1162.            these steps:
  1163.  
  1164.            1.  Place the mouse cursor over a  pixel  in  a  previously  generated
  1165.                    picture
  1166.  
  1167.            2.  Press and hold the left mouse button
  1168.  
  1169.            3.  Slide the mouse down and to the right.
  1170.  
  1171.            4.  When the Zoom box is of the desired size, release the mouse button
  1172.  
  1173.            One of the things you will notice is that you get a magnified view  of
  1174.            the  area  in  the  Zoom  Box  in  your new project.  This is the Lens
  1175.            Magnifier doing  a  bit  map  expansion,  not  MandelVroom  doing  any
  1176.            Mandelbrot  calculation.  It  gives  you a rough approximation of what
  1177.            your new project will look like when  you  press  generate.   You  can
  1178.            disable the Magnifier using the Calculate menu's Magnifier Item.
  1179.  
  1180.            If you do not see the Zoom box within the picture, check to see if you
  1181.            are trying to open in within a Julia  picture.  Zooming  into a  Julia
  1182.            picture is not allowed in MandelVroom.
  1183.  
  1184.            Now that you have placed your Zoom Box, can you identify the Zoom  Box
  1185.            gadgets?   You  can close the Zoom Box by pressing the close gadget in
  1186.            the upper left hand corner of the Zoom  Box.   Closing  the  Zoom  Box
  1187.            eliminates  the  possibility  of zooming in.  So if you didn't mean to
  1188.            open a Zoom Box, or you have decided you don't want to zoom  in,  then
  1189.            press the Zoom Box close gadget.
  1190.  
  1191.          Dragging the Zoom Box
  1192.  
  1193.            The Zoom Box drag bar can be used to drag the Zoom Box  around.   This
  1194.            is handy in case you didn't place the Zoom Box quite where you wanted.
  1195.            The drag bar is the region to the right of the Zoom Box close gadget.
  1196.  
  1197.          Resizing the Zoom Box
  1198.  
  1199.            In the lower right hand corner of the Zoom  Box,  you  will  find  the
  1200.            resize  gadget.   This  allows  you to resize the Zoom Box in much the
  1201.            same way you resize Amiga windows.
  1202.  
  1203.          Proportional Resize
  1204.  
  1205.            A Proportional Resize gadget can be  found  in  the  lower  left  hand
  1206.            corner of the Zoom Box.  This resize gadget moves all the edges of the
  1207.            Zoom  Box,  when  you resize the windows with it.  When you resize the
  1208.            Zoom Box in this way, the Zoom Box always maintains  the  same  aspect
  1209.            ratio as when you first touched the Proportional Resize gadget.
  1210.  
  1211.          Generating
  1212.  
  1213.            When you request MandelVroom to generate your new picture, it will use
  1214.            the upper left hand corner of the Zoom Box  as  the  upper  left  hand
  1215.            corner of the new picture.  The lower left hand corner of the Zoom Box
  1216.            will be used as the lower left hand corner of your new picture.
  1217.  
  1218.    Zooming Out
  1219.  
  1220.          There are times when you will want to perform the reverse of zooming in,
  1221.          called zooming out.  You must use the Zoom  Box  to  zoom  out.   Follow
  1222.          these simple steps to zoom out:
  1223.  
  1224.          1. Press the "O" gadget in the left margin of your picture window.   The
  1225.                 program will open the Zoom Box at  the  boundaries  of  your  project
  1226.                 window.
  1227.          2. Shrink the  Zoom box to the size that you want your picture to shrink
  1228.                 to after you press generate.
  1229.          3. Place the Zoom  box where  you would like this small version  of your
  1230.                 picture to be located in the next picture.
  1231.          4. Press the "G" button to generate your new picture.
  1232.  
  1233.          Zooming out is a good way  to  find  out  where  the  preset  Mandelbrot
  1234.          pictures are located in the preset labeled "Big Brot".
  1235.  
  1236.  JULIA Navigation
  1237.  
  1238.    Julia Curve navigation is much like  Mandelbrot  plot  navigation.   As  a
  1239.    matter  of  fact,  the  major tool you will use is our old friend the Zoom
  1240.    Box.
  1241.  
  1242.    There is one major difference between the two situations:  there  is  only
  1243.    one Mandelbrot set.  All the Mandelbrot pictures you generate are all just
  1244.    a subset of the entire Mandelbrot set.
  1245.  
  1246.    On the other hand, there are an infinite number of Julia sets.  The  Julia
  1247.    set  that you get depends on a seed that you choose.  You have an infinite
  1248.    number of seeds to choose from.  These seeds are available  to  you  in  a
  1249.    nice  orderly catalog called the Mandelbrot set.  The picture you get when
  1250.    you calculate a Julia curve depends on a location you choose  out  of  the
  1251.    Mandelbrot set.
  1252.  
  1253.    Setting Julia Curve Seed
  1254.  
  1255.          The first step in creating a Julia curve is to open a new Julia project.
  1256.          You do this by pulling down the JULIA sub-Item of the New  Project  Item
  1257.          in  the  Project menu.  Once your new project is open, you should notice
  1258.          an extra gadget in the right hand margin.  This new  gadget  is  labeled
  1259.          "J"  for Julia seed.  To utilize this gadget, you must have a Mandelbrot
  1260.          project window already open and precalculated.   Initially,  we  suggest
  1261.          you use the preset Mandelbrot picture named "Big Brot".
  1262.  
  1263.          To set the seed for your new Julia project, press the  "J"  gadget,  and
  1264.          then  place  the  mouse  cursor  on  some  pixel  within your Mandelbrot
  1265.          project.  When you press the left mouse button, you  set  the  seed  for
  1266.          your  Julia  project.  Now start generating your picture by pressing the
  1267.          "G" button in your Julia project window.
  1268.  
  1269.          You must set a Julia seed from an existing Mandelbrot  picture.  If  you
  1270.          try to set a seed from an existing Julia picture, all you will obtain is
  1271.          a copy that picture.
  1272.  
  1273.          We recommend you open many new Julia projects, and try choosing a number
  1274.          of different points within the "Big  Brot"  Mandelbrot  project.       Start
  1275.          generating  each  (or  all) of them, and see how different points within
  1276.          the Mandelbrot set give you strikingly different Julia Curves.
  1277.  
  1278.    Zooming In and Out
  1279.  
  1280.          Once the Julia curve is generated, you can zoom in and out  of  it  just
  1281.          like  a  Mandelbrot picture.  Zooming in enlarges small parts of a Julia
  1282.          Curve.  Zooming out shrinks them.
  1283.  
  1284.    PAN(orama)
  1285.  
  1286.          The Pan command allows you to scroll your project around in the  complex
  1287.          plane. To use the command:
  1288.  
  1289.          1. Pull down the Pan-Start sub-Item
  1290.  
  1291.          2. Place cursor in current project
  1292.  
  1293.          3. Press and hold the Left Mouse Button (LMB).
  1294.  
  1295.          4. Slide the mouse to Pan around.
  1296.  
  1297.          5. Release the LMB.
  1298.  
  1299.          6. Pull down the Pan-Generate sub-Item to produce a new picture.
  1300.  
  1301.          Steps 1 through 5 set the scroll amount, while step 6 performs a  scroll
  1302.          of  the project's counts data and a generation of the pixel's height and
  1303.          color.  Only the pixels that are left black due to the  scroll  will  be
  1304.          regenerated.
  1305.  
  1306.          Note that, if the image does not slide, you do not have enough memory to
  1307.          pan with.
  1308.  
  1309.  NOW THE EASY STUFF
  1310.  
  1311.    Congratulations!  You just made it  through  what  we  consider  the  most
  1312.    difficult  part  of  this  document.  You have learned how to navigate and
  1313.    color Mandelbrot and Julia curves.  If you are  confused,  play  with  the
  1314.    program  until  it  starts to make some sense.  If, after lots of playing,
  1315.    you still are confused, we recommend you go to the library and  check  out
  1316.    the  August  1985  Scientific  American  magazine.   Read   the   Computer
  1317.    Recreations column, for a simple and concise explanation of the Mandelbrot
  1318.    set and how to write a program to generate Mandelbrot pictures.   This  is
  1319.    how MandelVroom got started.
  1320.  
  1321.    Having made it so far, the remaining sections of this  document  are  much
  1322.    simpler and less laborious to read and understand. The next 3 sections are
  1323.    the  last  ones  directly  related  to  Mandlebrot  or  Julia curves.  The
  1324.    sections after them will talk about things that relate to the  Amiga,  not
  1325.    to abstract mathematical concepts.
  1326.  
  1327.  MAXIMUM ITERATION
  1328.  
  1329.    Very early in this document, we explained how Mandelbrot and Julia  curves
  1330.    are  based  on  iterating specific functions for a given pixel location in
  1331.    the complex plane.  The program will stop iterating the function  for  one
  1332.    of  two reasons: the result of the equation gets large or the program hits
  1333.    the maximum iteration value.  Some points would  iterate  forever,  if  we
  1334.    didn't put a limit on the maximum number of iterations allowed.
  1335.  
  1336.    MandelVroom allows you to set the maximum number of iterations  using  the
  1337.    Max  Iteration  Item  in the Calculate menu.  When you pull this menu Item
  1338.    down, MandelVroom opens up the Max Iteration requester,  allowing  you  to
  1339.    key  in  an  integer number that is used as the maximum iteration for your
  1340.    current project.  If you do this while the current project is  generating,
  1341.    you need to restart generation for it to have effect.
  1342.  
  1343.    Beware that setting this number to its maximum value (1023)  is  a  double
  1344.    edged  sword.  Your pictures will be more accurate, but, if lots of pixels
  1345.    in your picture are iterated to the maximum value, your pictures can  take
  1346.    a very, very long time to generate.
  1347.  
  1348.    For low magnification pictures (not zoomed  in  too  far),  low  iteration
  1349.    values are acceptable, but, as you zoom farther in (on smaller and smaller
  1350.    objects), you will need to increase the Max Iteration more and more.
  1351.  
  1352.    Another factor  that  seriously  affects  the  calculation  time  of  your
  1353.    projects  (besides  window size) is the data formats used to calculate the
  1354.    your pictures. For additional info, see below, section on Math Modes
  1355.  
  1356.  ORBIT
  1357.  
  1358.    An orbit, in the context of Mandelbrot  set  and  Julian  curves,  is  the
  1359.    sequence  of  all  the  values  calculated  in each step of the generating
  1360.    process (up to the chosen Max Orbit Iteration  value).  The  orbit  window
  1361.    will show a map of this sequence in the complex plane.
  1362.  
  1363.    To observe an orbital display, open the Orbit  window  using  the  Special
  1364.    Orbit  menu  Item.   After the window is open, you are in orbit seed mode.
  1365.    Place the mouse cursor over a Mandelbrot or Julia picture window and press
  1366.    the left mouse button.
  1367.  
  1368.    When you press the left mouse button, MandelVroom draws an  orbit  picture
  1369.    based  on  the pixel that you pick within the Mandelbrot or Julia picture.
  1370.    If you slide the mouse around while you hold down the left  mouse  button,
  1371.    the orbit display will change to reflect movements of the mouse cursor.
  1372.  
  1373.    There are two related menu Items that can be used to affect the results of
  1374.    the orbit display:  maximum orbit iteration and math mode.
  1375.  
  1376.    The maximum orbit iteration can  be  configured  using  the  Special  "Max
  1377.    Orbit" menu Item.
  1378.  
  1379.    The math mode can be configured using the Special "Orbit Mode" menu Item.
  1380.  
  1381.  STATISTICS
  1382.  
  1383.    When you select this Calculate menu Item, you will see a window  providing
  1384.    you with detiled info for the current picture window.
  1385.  
  1386.    The info describes the location of the region shown in the  picture within
  1387.    the  complex  plane,  the  size  in  pixels of the picture window, the gap
  1388.    between end and start, and the current magnification ratio.
  1389.  
  1390.  MATH MODES
  1391.  
  1392.    MandelVroom supports three data formats.  The fastest and  least  accurate
  1393.    is a fractional integer format that is used for all the presets.  The next
  1394.    fastest  (much slower) is the Amiga Fast Floating Point data format.  Both
  1395.    the frational integer and Amiga FFP formats keep data  in  thirty-two  bit
  1396.    variables.  The FFP is slightly more accurate with extremely small numbers
  1397.    because of its floating decimal point.
  1398.  
  1399.    The last data format is the IEEE 64 bit floating point format available on
  1400.    the Amiga.  This is the most accurate math mode of the three supported  by
  1401.    MandelVroom.  Unless you have a floating point hardware in your Amy, it is
  1402.    also  by  far  the  slowest mode in which to calculate Mandelbrot or Julia
  1403.    pictures.  The higher precision of the IEEE math allows  you  to  zoom  in
  1404.    much  farther  than  is  possible  with  either of the thirty-two bit math
  1405.    formats.
  1406.  
  1407.  A PLETHORA OF GENERATORS
  1408.  
  1409.    If you have a stock Amiga (500, 1000, or 2000), there are three  different
  1410.    picture  generators  available  to  you  for  both  Mandelbrot  and  Julia
  1411.    pictures.  If you are are a power user and can afford a 68020/68881  board
  1412.    for  your  Amiga,  then  you can use two more Mandelbrot and Julia picture
  1413.    generators. This means you have a total of ten picture generators at  your
  1414.    finger  tips.  This, combined with MandelVroom's multiple project support,
  1415.    and  the  Amiga's  wonderful  multitasking  capabilities,  allows  you  to
  1416.    generate  as  many projects as you want (using all the math modes) on your
  1417.    screen at the same time!
  1418.  
  1419.    You set the math mode you desire on a project-by-project  basis.  You  can
  1420.    change  the  math mode for the current project by using the Math Mode Item
  1421.    in the Calculate menu.  The Math Mode  Item  has  five  sub-Items.   Their
  1422.    names and meaning are as follows:
  1423.  
  1424.    68000 - 32 bit integer with 16 bit multiplies
  1425.    FFP   - Amiga Fast Floating Point
  1426.    IEEE  - 64 bit IEEE floating point software libraries
  1427.    68020 - 32 bit integer with 32 bit multiplies
  1428.    68881 - 64 bit IEEE floating point using 68881 (or 68882) hardware
  1429.  
  1430.    Note that, at the moment, the 68881 math mode will not work in conjunction
  1431.    with CMI type accelerator boards, due to  design  incompatibilities.   The
  1432.    software  provided  with  the  CMI  boards to-date has problems related to
  1433.    proper multitasking and saving/loading registers.
  1434.  
  1435.  LOADING AND SAVING PROJECTS
  1436.  
  1437.    Mandelbrot and Julia curves can take a very  long  time  to  generate,  so
  1438.    MandelVroom  allows  you  to  save previously calculated projects on disk.
  1439.    Later you can reload them from disk and keep working on them, or use  them
  1440.    as  starting  point  for additional explorations. The Project menu has two
  1441.    Items that you can use to perform these functions.
  1442.  
  1443.    After generating your own project, you can save it to disk using the  Save
  1444.    Project  Item.       When  you  pull  it  down,  MandelVroom opens a file name
  1445.    requester that allows you to save your projects to disk.
  1446.  
  1447.    Later, after you are tired of playing your favorite game, you can start up
  1448.    MandelVroom, and reload your projects using the Load Project Item.
  1449.  
  1450.    In the Projects drawer on the Mandelbrot floppy, we have provided you with
  1451.    a number of pictures that we consider interesting and beautiful.
  1452.  
  1453.  SAVING SCREENS
  1454.  
  1455.    MandelVroom also allows you to save your screens as ILBM files, so you can
  1456.    create your own Mandelbrot and Julia slide  shows.   You  can  save  ILBMs
  1457.    using the Save ILBM Item in the Project menu.
  1458.  
  1459. BORDERLESS
  1460.  
  1461.    This Item, in the Display menu, lets you  configure  whether  or  not  the
  1462.    current  project  has  a border with associated gadgets in it.  Borderless
  1463.    projects are nice when you want to use the "Save ILBM" menu Item.
  1464.  
  1465.    When making a window borderless, the following rules apply:
  1466.  
  1467.    If the window  was smaller than the screen, the borderless window  will be
  1468.          the same size as the image.
  1469.  
  1470.    If the window was the same size as the screen, the borderless window  will
  1471.          have the same dimension as the screen, with a black  border  surrounding
  1472.          it.  When  you regenerate the picture, it will be expanded to occupy the
  1473.          entire screen.
  1474.  
  1475.    When a project becomes borderless, you must use:
  1476.  
  1477.    the CURRENT and CLOSE Items in the Project Menu  to  make  it  current  or
  1478.          close it.
  1479.  
  1480.    the GENERATE sub-Items in the Calculate menu to  Start,  Stop  and  Resume
  1481.          generation of the picture.
  1482.  
  1483.  SCREEN CONFIGURATION
  1484.  
  1485.    The Amiga  has  powerful  and  flexible  graphics  hardware.   MandelVroom
  1486.    supports  easy  changes  from  one  graphics mode to another.  At any time
  1487.    while you are working with MandelVroom you can change graphics modes.   If
  1488.    you  happen  to  have projects generating, MandelVroom pauses the projects
  1489.    long enough to close and reopen the screen and project windows.
  1490.  
  1491.    MandelVroom  supports  any  valid  combination  of  low  resolution,  high
  1492.    resolution,  non-interlace,  interlace  and  halfbrite graphics modes.  It
  1493.    also allows you to choose the number of colors you have  in  your  screen.
  1494.    The  Color  Palette always configures itself to the number of pens in your
  1495.    screen.
  1496.  
  1497.    You can change MandelVroom's screen configuration using the Display menu's
  1498.    View Modes Item.   The  View  Modes  Item  allows  three  choises:  HIRES,
  1499.    INTERLACE,  and HALFBRITE.  These sub-Items have a check mark in the right
  1500.    part of the selection box when they are active.  If there is a check  mark
  1501.    to the left of HIRES, then the screen is in HIRES mode.  If you now select
  1502.    the HIRES sub-Item, the check mark will go away and the screen will change
  1503.    to  reflect  the  new  View Modes setting.  The check mark is also used to
  1504.    indicate the state of the INTERLACE and HALFBRITE sub-Items.
  1505.  
  1506.    Please note that HIRES and HALFBRITE are mutually  exclusive.   The  Amiga
  1507.    hardware  makes  it  impossible  to  have  them  both on at the same time.
  1508.    Another thing to notice, is that  MandelVroom  automatically  changes  the
  1509.    screen  configuration  to  match  new  presets and projects that are being
  1510.    loaded from disk.
  1511.  
  1512.  OVERSCAN AND PAL SUPPORT
  1513.  
  1514.    MandelVroom supports oversized (MoreRows) screens using the  GetScreenData
  1515.    function  provided  by  the  Amiga  operating system.  The default mode of
  1516.    MandelVroom is to make its screen as  wide  and  tall  as  your  WorkBench
  1517.    screen  (scaled  depending on View Modes).  You can override the WorkBench
  1518.    sizing aspects of the screen using the Screen Size  Item  of  the  Display
  1519.    menu.   The  Standard  sub-Item  gives  you  standard  size  screens (i.e.
  1520.    320x200, 320x400, 640x200 and 640x400).  The WorkBench sub-Item (which  is
  1521.    the  default)  allows  MandelVroom  to  scale  its  screen  to  match your
  1522.    WorkBench size.
  1523.  
  1524.    The Amiga operating system also provides a way  for programs  to  know  if
  1525.    they  are  running  on  PAL machines.  MandelVroom takes advantage of this
  1526.    feature, and adjusts its standard screen sizes accordingly.
  1527.  
  1528.  ENOUGH IS ENOUGH
  1529.  
  1530.    Well, that is it.  You have made it to the end. We hope you like and enjoy
  1531.    the program! Please send any comments to:
  1532.  
  1533.    Kevin Clague - USENET address: kevin@amdahl.uts.amdahl.com
  1534.                   US MAIL address: 2691 Bon Bon Drive
  1535.                                    San Jose, CA 95148
  1536.                                    (408)-270-0673
  1537.  
  1538.