source: trunk/third/xscreensaver/hacks/epicycle.man @ 12203

Revision 12203, 7.7 KB checked in by ghudson, 26 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r12202, which included commits to RCS files with non-trunk default branches.
Line 
1.de EX          \"Begin example
2.ne 5
3.if n .sp 1
4.if t .sp .5
5.nf
6.in +.5i
7..
8.de EE
9.fi
10.in -.5i
11.if n .sp 1
12.if t .sp .5
13..
14.TH XScreenSaver 1 "27-Apr-97" "X Version 11"
15.SH NAME
16epicycle - draws a point moving around a circle which moves around a cicle which...
17.SH SYNOPSIS
18.B epicycle
19[\-display \fIhost:display.screen\fP] [\-root] [\-window] [\-mono] [\-install] [\-noinstall] [\-visual \fIviz\fP] [\-colors \fIN\fP] [\-foreground \fIname\fP] [\-color\-shift \fIN\fP] [\-delay \fImicroseconds\fP] [\-holdtime \fIseconds\fP] [\-linewidth \fIN\fP] [\-min_circles \fIN\fP] [\-max_circles \fIN\fP] [\-min_speed \fInumber\fP] [\-max_speed \fInumber\fP] [\-harmonics \fIN\fP] [\-timestep \fInumber\fP] [\-divisor_poisson \fIprobability\fP] [\-size_factor_min \fInumber\fP] [\-size_factor_max \fInumber\fP]
20.SH DESCRIPTION
21The epicycle program draws the path traced out by a point on the edge
22of a circle.  That circle rotates around a point on the rim of another
23circle, and so on, several times.  The random curves produced can be
24simple or complex, convex or concave, but they are always closed
25curves (they never go in indefinitely).
26
27You can configure both the way the curves are drawn and the way in
28which the random sequence of circles is generated, either with
29command-line options or X resources.
30.SH OPTIONS
31.TP 8
32.B \-display \fIhost:display.screen\fP
33Specifies which X display we should use (see the section DISPLAY NAMES in
34.BR X (1)
35for more information about this option).
36.TP 8
37.B \-root
38Draw on the root window.
39.TP 8
40.B \-window
41Draw on a newly-created window.  This is the default.
42.TP 8
43.B \-mono
44If on a color display, pretend we're on a monochrome display.
45If we're on a mono display, we have no choice.
46.TP 8
47.B \-install
48Install a private colormap for the window.
49.TP 8
50.B \-noinstall
51Don't install a private colormap for the window.
52.TP 8
53.B \-visual \fIviz\fP
54Specify which visual to use.  Legal values are the name of a visual
55class, or the id number (decimal or hex) of a specific visual.
56Possible choices include
57
58.RS
59default, best, mono, monochrome, gray, grey, color, staticgray, staticcolor,
60truecolor, grayscale, greyscale, pseudocolor, directcolor, \fInumber\fP
61
62If a decimal or hexadecimal number is used,
63.BR XGetVisualInfo (3X)
64is consulted to obtain the required visual.
65.RE
66.TP 8
67.B \-colors \fIN\fP
68How many colors should be used (if possible).  The colors are chosen
69randomly.
70.TP 8
71.B \-foreground \fIname\fP
72With
73.BR \-mono ,
74this option selects the foreground colour.   
75.TP 8
76.B \-delay \fImicroseconds\fP
77Specifies the delay between drawing successive line segments of the
78path.   If you do not specify
79.BR -sync ,
80some X servers may batch up several drawing operations together,
81producing a less smooth effect.   This is more likely to happen
82in monochrome mode (on monochrome servers or when
83.B \-mono
84is specified).
85.TP 8
86.B \-holdtime \fIseconds\fP
87When the figure is complete,
88.I epicycle
89pauses this number of seconds.
90.TP 8
91.B \-linewidth \fIN\fP
92Width in pixels of the body's track.   Specifying values greater than
93one may cause slower drawing.   The fastest value is usually zero,
94meaning one pixel.   
95.TP 8
96.B \-min_circles \fIN\fP
97Smallest number of epicycles in the figure.
98.TP 8
99.B \-max_circles \fIN\fP
100Largest number of epicycles in the figure.
101.TP 8
102.B \-min_speed \fInumber\fP
103Smallest possible value for the base speed of revolution of the
104epicycles.  The actual speeds of the epicycles vary from this down
105to
106.IB "min_speed / harmonics" .
107.TP 8
108.B \-max_speed \fInumber\fP
109Smallest possible value for the base speed of revolution of the
110epicycles.
111.TP 8
112.B \-harmonics \fIN\fP
113Number of possible harmonics; the larger this value is, the greater
114the possible variety of possible speeds of epicycle.
115.TP 8
116.B \-timestep \fInumber\fP
117Decreasing this value will reduce the distance the body moves for
118each line segment, possibly producing a smoother figure.  Increasing
119it may produce faster results. 
120.TP 8
121.B \-divisor_poisson \fIprobability\fP
122Each epicycle rotates at a rate which is a factor of the base speed.
123The speed of each epicycle is the base speed divided by some integer
124between 1 and the value of the
125.B \-harmonics
126option.  This integer is decided by starting at 1 and tossing
127a biased coin.  For each consecutive head, the value is incremented by
128one.  The integer will not be incremented above the value of the
129.B \-harmonics
130option.  The argument of this option decides the bias of the coin; it
131is the probability that that coin will produce a head at any given toss.
132.TP 8
133.B \-size_factor_min \fInumber\fP
134Epicycles are always at least this factor smaller than their
135parents. 
136.TP 8
137.B \-size_factor_max \fInumber\fP
138Epicycles are never more than this factor smaller than their parents.
139.SH RESOURCES
140.EX
141Option            Resource               Default Value
142------            --------               -------------
143-colors           .colors                100
144-delay            .delay                 1000
145-holdtime         .holdtime              2
146-linewidth        .lineWidth             4
147-min_circles      .minCircles            2
148-max_circles      .maxCircles            10
149-min_speed        .minSpeed              0.003
150-max_speed        .maxSpeed              0.005
151-harmonics        .harmonics             8
152-timestep         .timestep              1.0
153-divisor_poisson  .divisorPoisson        0.4
154-size_factor_min  .sizeFactorMin         1.05
155-size_factor_max  .sizeFactorMax         2.05
156                  .timestepCoarseFactor  1.0
157.EE
158Before the drawing of the figure is begun, a preliminary calculation
159of the path is done in order to scale the radii of the epicycles so
160as to fit the figure on the screen or window.  For the sake of speed,
161This calculation is done with a larger timestep than the actual
162drawing.  The time-step used is the value of the
163.B \-timestep
164option multiplied by the timestepCoarseFactor resource.  The default
165value of 1 will almost always work fast enough and so this resource
166is not available as a command-line option.
167.SH USER INTERFACE
168The program runs mostly without user interaction.  When running on the
169root window, no input is accepted.  When running in its own window,
170the program will exit if mouse button 3 is pressed.  If any other
171mouse button is pressed, the current figure will be abandoned and
172another will be started.
173.SH HISTORY
174The geometry of epicycles was perfected by Hipparchus of Rhodes at
175some time around 125 B.C., 185 years after the birth of Aristarchus of
176Samos, the inventor of the heliocentric universe model.  Hipparchus
177applied epicycles to the Sun and the Moon.  Ptolemy of Alexandria went
178on to apply them to what was then the known universe, at around 150
179A.D.  Copernicus went on to apply them to the heliocentric model at
180the beginning of the sixteenth century.  Johannes Kepler discovered
181that the planets actually move in elliptical orbits in about 1602.
182The inverse-square law of gravity was suggested by Boulliau in 1645.
183Isaac Newton's
184.I Principia Mathematica
185was published in 1687, and proved that Kepler's laws derived from
186Newtonian gravitation.
187.SH BUGS
188The colour selection is re-done for every figure.  This may
189generate too much network traffic for this program to work well
190over slow or long links.   
191.SH COPYRIGHT
192Copyright \(co 1998, James Youngman.  Permission to use, copy, modify,
193distribute, and sell this software and its documentation for any purpose is
194hereby granted without fee, provided that the above copyright notice appear
195in all copies and that both that copyright notice and this permission notice
196appear in supporting documentation.  No representations are made about the
197suitability of this software for any purpose.  It is provided "as is" without
198express or implied warranty.
199.SH AUTHOR
200James Youngman <jay@gnu.org>, April 1998.
Note: See TracBrowser for help on using the repository browser.