Provided by: xscreensaver-data-extra_4.23-4ubuntu8_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]


       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


            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.