epicycle(6) XScreenSaver manual epicycle(6)
NAME
epicycle - draws a point moving around a circle which moves around a
cicle which...
SYNOPSIS
epicycle [--display
host:display.screen] [--root] [--window-id
number][--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]
DESCRIPTION
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.
OPTIONS
--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-id number Draw on the specified 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 Install a private colormap for the window.
--noinstall 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
seconds.
--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 epicycles.
--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
parents.
--size_factor_max number Epicycles are never more than this factor smaller than their
parents.
--fps Display the current frame rate and CPU load.
--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.
USER INTERFACE
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.
HISTORY
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.
BUGS
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.
ENVIRONMENT
DISPLAY to get the default host and display number.
XENVIRONMENT to get the name of a resource file that overrides the global
resources stored in the RESOURCE_MANAGER property.
XSCREENSAVER_WINDOW The window ID to use with
--root.
SEE ALSO
X(1),
xscreensaver(1)COPYRIGHT
Copyright (C) 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
warranty.
AUTHOR
James Youngman <jay@gnu.org>, April 1998.
X Version 11 6.09 (07-Jun-2024) epicycle(6)