NAME
epicycle - draws a point moving around a circle which moves
around a cicle which...
SYNOPSIS
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 proba-
bility] [-size_factor_min number] [-size_factor_max number]
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 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 opera-
tions 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 revo-
lution of the epicycles. The actual speeds of the
epicycles vary from this down to min_speed / harmon-
ics.
-max_speed number
Smallest possible value for the base speed of revo-
lution 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.
RESOURCES
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.
USER INTERFACE
The program runs mostly without user interaction. When run-
ning 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 heliocen-
tric 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.
COPYRIGHT
Copyright O 1998, James Youngman. Permission to use, copy,
modify, distribute, and sell this software and its documen-
tation for any purpose is hereby granted without fee, pro-
vided that the above copyright notice appear in all copies
and that both that copyright notice and this permission
notice appear in supporting documentation. No representa-
tions 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.
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |