packages icon



 XMANDEL(X)                     X Version 11                      XMANDEL(X)
                                25 April 1992



 NAME
      xmandel - X11 interface to the Mandelbrot and Julia sets

 SYNOPSIS
      xmandel [-display display]

 DESCRIPTION
      Xmandel is a user friendly interface for generating and colouring
      Mandelbrot and Julia sets.  It initially comes up with with eleven or
      so command buttons, which are described below, for controlling the
      execution.  A Mandelbrot set is drawn in the window of the initial
      form when the mandel button is selected.  A separate window is created
      for drawing the Julia sets.

 THEORY
      Let z0 be a number in the complex plane (x + yi). Choose a complex
      constant C. Calculate z1 = z0 ** 2 + C.  Repeat this recursively, so
      that z2 = z1 ** 2 + C, z3 = z2 ** 2 + C and so on.  z[n] will either
      tend to infinity or zero, depending on its initial value and the
      constant C.  Specifically if the absolute value of z[n], expressed as
      |z| = sqrt(x**2 + y**2) is greater than 2, then the recursive formula
      will diverge.

      So, to calculate a Julia set, take each point near (0,0i), and use the
      formula z = z**2 + C recursively.  The Julia set is the set of points
      for which z = z**2 + C would iterate indefinitely for the constant C.
      Pixels, which represent numbers in the complex plane, are set to the
      number of iterations before |z| exceeds 2.  This then becomes an index
      into the hardware colormap.  Each color then represents the number of
      iterations before divergence is detected.

      To calculate a Mandelbrot set, again take each point near (0,0i), use
      the same formula z = z**2 + C recursively.  This time let C be the
      initial value of the point itself (C = z0).  Rather than having the
      same C for every point in the complex plane as in Julia set
      calculations, C is different for each point in the plane.  Again let
      the pixel value be the number of iterations before |z| exceeds 2.

      On monochrome displays, the pixel value is set to 1 if the iteration
      count is 64, otherwise 0.

      Mandelbrot sets and Julia sets are obviously closely related as can be
      seen from the similarity of their respective formulas.  If the
      constant C is chosen from the interior of the Mandelbrot set, then the
      Julia set calculated from that constant C will be connected, that is
      have no gaps or discontinuities.  If the constant C is chosen from
      outside the Mandelbrot set, the Julia set will be disconnected, more
      like grains of dust (Fatou clouds).  If the constant C is chosen from
      the border of the Mandelbrot set, then the Julia set will be more
      convoluted.  Given this relationship between points in the Mandelbrot
      set and the Julia set generated, Xmandel provides user selection of



                                    - 1 -           Formatted:  July 7, 2022






 XMANDEL(X)                     X Version 11                      XMANDEL(X)
                                25 April 1992



      the constant C by mouse selection in the Mandelbrot window.

 BUTTONS
      To control execution of the calculations, various buttons are
      provided.  The buttons are somewhat different between the Athena
      Widget and Motif Widget implementations.  The buttons are:

      mandel
           Calculates a Mandelbrot set from (-2.25, -1.5) to (1.0, 1.5) and
           display it in the window provided.

           Pressing a mouse button with the cursor in the drawing window
           terminates the calculations.

      julia
           Calculates a Julia set.  The user is required to select a point
           inside the Mandelbrot window using the left mouse button as the
           constant C for the Julia set calculation.  It will open a new
           window if needed.  The Julia set is centered around (0,0), going
           from (-1.5, -1.5) to (1.5, 1.5).  Julia set points can be
           selected from zoomed in Mandelbrot windows as well.  Beware of
           selecting points outside the Mandelbrot window.

           Pressing a mouse button in the drawing window terminates the
           calculations.

      Image
           After the Mandelbrot or Julia set is generated, the Image button
           identifies which set is to be used for various manipluations such
           as zoom or +colour. If this button is pressed, the active image
           toggles between "Mandel" and "Julia" to identify the set that is
           to be manipulated.

           The Motif implementation uses radio buttons for this toggle.

      zoom In order to zoom in on a given area in the Mandelbrot or Julia
           set, a zoom button is provided.  The area to be zoomed in on is
           selected with the left mouse button.  Left button down begins the
           selection, dragging with left button down draws a rubber banded
           box to show the zoom area, and left button up begins the
           calculation.  You can zoom in on a zoomed in area until you reach
           the limits of the precision of your hardware.  Selecting a zoom
           area that crosses a window border doesn't work.

           To a certain degree, the zoom rubber banded box may be moved,
           enlarged and otherwise resized by careful use of the mouse.

           Zoom requests less than 5 pixels wide are ignored.  The zoom
           request may be terminated by pressing button 2 or 3 while
           creating the rubber band.




                                    - 2 -           Formatted:  July 7, 2022






 XMANDEL(X)                     X Version 11                      XMANDEL(X)
                                25 April 1992



           If the Motif version is used, the zoom coordinates may be
           specified in the ZOOM COORDINATES dialogue boxes.  After the
           desired coodinates are enterd, pressing the zoom button activates
           the drawing.

      unzoom
           Return to previous zoom. Note that you can zoom all the way out
           by selecting the mandel button.

      recalc
           Recompute the set at the current coordinates.  This is useful to
           redisplay the current image after the set's window has been
           resized.

           If the Motif version is used, the coordinates for recalculation
           may be modified in the ZOOM COORDINATES dialogue boxes.

      colour
           The colour button selects colour rotation value to be applied
           when the +colour or -colour buttons are used.

           The "colour step" value is added to each pixel colour before
           redisplay.  The effectively rotates the image through the
           available colour map.  By default, the rotation value is set to
           the number of bit planes: for an 8 bit display, the rotation
           value is 8; for a 2 bit display, the rotation value is 2; etc.

           The selected set and rotation value is "remembered" for use with
           the +colour and -colour buttons.

           The "rotate" dialogue box in the Motif edition is used to set the
           colour rotation value.

      +colour
           The default set is rotated in a positive sense by adding the
           previously specified colour rotation value to all pixels.

           An interesting "colour zoom" effect can be achieved by first
           setting the colour rotation value to 1 and rapidly pressing the
           +colour or -colour button.

      -colour
           The default set is rotated in a negative sense by subtracting the
           previously specified colour rotation value.  In effect, -colour
           undoes the effect of +colour.

      gif  Either the Mandelbrot or Julia image may be captured to a GIF
           file.  The Mandelbrot image is saved in the specified file name
           if the Mandelbrot radio button is pressed, the Julia image is
           saved if the Julia radio button is pressed.




                                    - 3 -           Formatted:  July 7, 2022






 XMANDEL(X)                     X Version 11                      XMANDEL(X)
                                25 April 1992



           For the Motif implementation, the desired file name is entered
           into the Gif file dialogue box.  Pressing the Save button saves
           the default image (set by the radio buttons) as a gif file.

      remove
           Remove the Julia set window.  It will be recreated if another
           Julia display is requested.

           This button is not used in the Motif edition: the Julia set may
           be removed by closing the Julia window.

      quit This causes xmandel to exit.

 MOTIF NOTES
      The default set is selected by the radio buttons mandel or julia. The
      default set selection is used when the recalc, +colour, -colour, or
      other buttons are pressed.  For example, if the julia radio button is
      selected, the recalc button will recompute the Julia set.  The
      Mandelbrot set is unaffected.

      The additional dialog boxes allow you to manually provide the
      Mandelbrot zoom coordinates. Changes to the POINT COORDINATES are not
      allowed.

 BUGS
      The system works only with 1, 2, 4, or 8 bit displays: 24 bit display
      systems are not supported.

      Exposure events are examined after the generation of every 4th image
      scan line: there is some delay after and exposure event before the
      image is actually refreshed.

      Xmandel cannot manipluate the colour map.

      Performance is slow on workstations, especially workstations without
      floating point hardware.  Alternatively, extensive use of xmandel may
      justify the purchase of a more powerful system.

 AUTHOR
      John L. Freeman (jlf@cray.com)

      Changes for gif, Motif and SysV X11-R4:
             Tony Field (tony@ajfcal.cuc.ab.ca)











                                    - 4 -           Formatted:  July 7, 2022