Provided by: xscreensaver-data-extra_5.15-2ubuntu1_i386 bug


       epicycle  -  draws  a point moving around a circle which moves around a
       cicle which...


       epicycle  [-display  host:display.screen]  [-root]  [-window]   [-mono]
       [-install]  [-noinstall]  [-visual  viz] [-colors N] [-foreground name]
       [-color-shift N] [-delay microseconds] [-holdtime seconds]  [-linewidth
       N]  [-min_circles  N]  [-max_circles N] [-min_speed number] [-max_speed
       number]   [-harmonics   N]   [-timestep    number]    [-divisor_poisson
       probability] [-size_factor_min number] [-size_factor_max number] [-fps]


       The  epicycle  program draws the path traced out by a point on the edge
       of a circle.  That circle rotates around a point on the rim of  another
       circle,  and  so  on, several times.  The random curves produced can be
       simple or complex, convex or concave, but they are always closed curves
       (they never go in indefinitely).

       You  can  configure  both  the  way the curves are drawn and the way in
       which the random sequence of circles is generated, either with command-
       line options or X resources.


       -display host:display.screen
               Specifies  which  X  display  we  should  use  (see the section
               DISPLAY NAMES in X(1) for more information about this option).

       -root   Draw on the root window.

       -window Draw on a newly-created window.  This is the default.

       -mono   If on a color display, pretend we're on a  monochrome  display.
               If we're on a mono display, we have no choice.

               Install a private colormap for the window.

               Don't install a private colormap for the window.

       -visual viz
               Specify  which  visual  to use.  Legal values are the name of a
               visual class, or the id number (decimal or hex) of  a  specific
               visual.  Possible choices include

               default, best, mono, monochrome, gray, grey, color, staticgray,
               staticcolor,  truecolor,  grayscale,  greyscale,   pseudocolor,
               directcolor, number

               If  a decimal or hexadecimal number is used, XGetVisualInfo(3X)
               is consulted to obtain the required visual.

       -colors N
               How many colors should be used (if possible).  The  colors  are
               chosen randomly.

       -foreground name
               With -mono, this option selects the foreground colour.

       -delay microseconds
               Specifies the delay between drawing successive line segments of
               the path.   If you do not specify -sync,  some  X  servers  may
               batch  up several drawing operations together, producing a less
               smooth effect.   This is more likely to  happen  in  monochrome
               mode (on monochrome servers or when -mono is specified).

       -holdtime seconds
               When  the  figure  is  complete, epicycle pauses this number of

       -linewidth N
               Width in  pixels  of  the  body's  track.    Specifying  values
               greater  than one may cause slower drawing.   The fastest value
               is usually zero, meaning one pixel.

       -min_circles N
               Smallest number of epicycles in the figure.

       -max_circles N
               Largest number of epicycles in the figure.

       -min_speed number
               Smallest possible value for the base speed of revolution of the
               epicycles.   The  actual speeds of the epicycles vary from this
               down to min_speed / harmonics.

       -max_speed number
               Smallest possible value for the base speed of revolution of the

       -harmonics N
               Number  of  possible  harmonics;  the larger this value is, the
               greater the possible variety of possible speeds of epicycle.

       -timestep number
               Decreasing this value will reduce the distance the  body  moves
               for  each  line  segment, possibly producing a smoother figure.
               Increasing it may produce faster results.

       -divisor_poisson probability
               Each epicycle rotates at a rate which is a factor of  the  base
               speed.  The speed of each epicycle is the base speed divided by
               some integer between 1 and the value of the -harmonics  option.
               This  integer  is decided by starting at 1 and tossing a biased
               coin.  For each consecutive head, the value is  incremented  by
               one.   The  integer  will not be incremented above the value of
               the -harmonics option.  The argument of this option decides the
               bias  of  the  coin;  it is the probability that that coin will
               produce a head at any given toss.

       -size_factor_min number
               Epicycles are always at least this factor  smaller  than  their

       -size_factor_max number
               Epicycles  are  never  more than this factor smaller than their

       -fps    Display the current frame rate and CPU load.


       Option            Resource               Default Value
       ------            --------               -------------
       -colors           .colors                100
       -delay            .delay                 1000
       -holdtime         .holdtime              2
       -linewidth        .lineWidth             4
       -min_circles      .minCircles            2
       -max_circles      .maxCircles            10
       -min_speed        .minSpeed              0.003
       -max_speed        .maxSpeed              0.005
       -harmonics        .harmonics             8
       -timestep         .timestep              1.0
       -divisor_poisson  .divisorPoisson        0.4
       -size_factor_min  .sizeFactorMin         1.05
       -size_factor_max  .sizeFactorMax         2.05
                         .timestepCoarseFactor  1.0
       Before the drawing of the figure is begun, a preliminary calculation of
       the  path is done in order to scale the radii of the epicycles so as to
       fit the figure on the screen or window.  For the sake  of  speed,  This
       calculation  is  done  with  a larger timestep than the actual drawing.
       The time-step used is the value of the -timestep option  multiplied  by
       the  timestepCoarseFactor resource.  The default value of 1 will almost
       always work fast enough and so this resource  is  not  available  as  a
       command-line option.


       The  program runs mostly without user interaction.  When running on the
       root window, no input is accepted.  When running in its own window, the
       program  will  exit  if  mouse button 3 is pressed.  If any other mouse
       button is pressed, the current figure will  be  abandoned  and  another
       will be started.


       The geometry of epicycles was perfected by Hipparchus of Rhodes at some
       time around 125 B.C., 185 years  after  the  birth  of  Aristarchus  of
       Samos,  the  inventor  of  the heliocentric universe model.  Hipparchus
       applied epicycles to the Sun and the Moon.  Ptolemy of Alexandria  went
       on  to  apply  them  to what was then the known universe, at around 150
       A.D.  Copernicus went on to apply them to the heliocentric model at the
       beginning  of  the  sixteenth century.  Johannes Kepler discovered that
       the planets actually move in elliptical  orbits  in  about  1602.   The
       inverse-square law of gravity was suggested by Boulliau in 1645.  Isaac
       Newton's Principia Mathematica was published in 1687, and  proved  that
       Kepler's laws derived from Newtonian gravitation.


       The  colour  selection  is re-done for every figure.  This may generate
       too much network traffic for this program to work  well  over  slow  or
       long links.


       Copyright  ©  1998,  James  Youngman.  Permission to use, copy, modify,
       distribute, and sell  this  software  and  its  documentation  for  any
       purpose  is  hereby  granted  without  fee,  provided  that  the  above
       copyright notice appear in all copies  and  that  both  that  copyright
       notice  and  this permission notice appear in supporting documentation.
       No representations are made about the suitability of this software  for
       any  purpose.   It  is  provided  "as  is"  without  express or implied


       James Youngman <>, April 1998.