epicycle man page on aLinux
epicycle(6) XScreenSaver manual epicycle(6)
epicycle - draws a point moving around a circle which moves around a
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 probabil‐
ity] [-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.
Specifies which X display we should use (see the section DIS‐
PLAY 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.
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,
If a decimal or hexadecimal number is used, XGetVisualInfo(3X)
is consulted to obtain the required visual.
How many colors should be used (if possible). The colors are
With -mono, this option selects the foreground colour.
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).
When the figure is complete, epicycle pauses this number of
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.
Smallest number of epicycles in the figure.
Largest number of epicycles in the figure.
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.
Smallest possible value for the base speed of revolution of the
Number of possible harmonics; the larger this value is, the
greater the possible variety of possible speeds of epicycle.
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.
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.
Epicycles are always at least this factor smaller than their
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
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 com‐
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
Copyright © 1998, James Youngman. Permission to use, copy, modify,
distribute, and sell this software and its documentation for any pur‐
pose 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 repre‐
sentations are made about the suitability of this software for any pur‐
pose. It is provided "as is" without express or implied warranty.
James Youngman <firstname.lastname@example.org>, April 1998.
X Version 11 5.07 (10-Aug-2008) epicycle(6)
List of man pages available for aLinux
Copyright (c) for man pages and the logo by the respective OS vendor.
For those who want to learn more, the polarhome community provides shell access and support.
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome