14 .TH XScreenSaver 1 "27-Apr-97" "X Version 11"
16 epicycle - draws a point moving around a circle which moves around a cicle which...
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]
21 The epicycle program draws the path traced out by a point on the edge
22 of a circle. That circle rotates around a point on the rim of another
23 circle, and so on, several times. The random curves produced can be
24 simple or complex, convex or concave, but they are always closed
25 curves (they never go in indefinitely).
27 You can configure both the way the curves are drawn and the way in
28 which the random sequence of circles is generated, either with
29 command-line options or X resources.
32 .B \-display \fIhost:display.screen\fP
33 Specifies which X display we should use (see the section DISPLAY NAMES in
35 for more information about this option).
38 Draw on the root window.
41 Draw on a newly-created window. This is the default.
44 If on a color display, pretend we're on a monochrome display.
45 If we're on a mono display, we have no choice.
48 Install a private colormap for the window.
51 Don't install a private colormap for the window.
54 Specify which visual to use. Legal values are the name of a visual
55 class, or the id number (decimal or hex) of a specific visual.
56 Possible choices include
59 default, best, mono, monochrome, gray, grey, color, staticgray, staticcolor,
60 truecolor, grayscale, greyscale, pseudocolor, directcolor, \fInumber\fP
62 If a decimal or hexadecimal number is used,
63 .BR XGetVisualInfo (3X)
64 is consulted to obtain the required visual.
68 How many colors should be used (if possible). The colors are chosen
71 .B \-foreground \fIname\fP
74 this option selects the foreground colour.
76 .B \-delay \fImicroseconds\fP
77 Specifies the delay between drawing successive line segments of the
78 path. If you do not specify
80 some X servers may batch up several drawing operations together,
81 producing a less smooth effect. This is more likely to happen
82 in monochrome mode (on monochrome servers or when
86 .B \-holdtime \fIseconds\fP
87 When the figure is complete,
89 pauses this number of seconds.
91 .B \-linewidth \fIN\fP
92 Width in pixels of the body's track. Specifying values greater than
93 one may cause slower drawing. The fastest value is usually zero,
96 .B \-min_circles \fIN\fP
97 Smallest number of epicycles in the figure.
99 .B \-max_circles \fIN\fP
100 Largest number of epicycles in the figure.
102 .B \-min_speed \fInumber\fP
103 Smallest possible value for the base speed of revolution of the
104 epicycles. The actual speeds of the epicycles vary from this down
106 .IB "min_speed / harmonics" .
108 .B \-max_speed \fInumber\fP
109 Smallest possible value for the base speed of revolution of the
112 .B \-harmonics \fIN\fP
113 Number of possible harmonics; the larger this value is, the greater
114 the possible variety of possible speeds of epicycle.
116 .B \-timestep \fInumber\fP
117 Decreasing this value will reduce the distance the body moves for
118 each line segment, possibly producing a smoother figure. Increasing
119 it may produce faster results.
121 .B \-divisor_poisson \fIprobability\fP
122 Each epicycle rotates at a rate which is a factor of the base speed.
123 The speed of each epicycle is the base speed divided by some integer
124 between 1 and the value of the
126 option. This integer is decided by starting at 1 and tossing
127 a biased coin. For each consecutive head, the value is incremented by
128 one. The integer will not be incremented above the value of the
130 option. The argument of this option decides the bias of the coin; it
131 is the probability that that coin will produce a head at any given toss.
133 .B \-size_factor_min \fInumber\fP
134 Epicycles are always at least this factor smaller than their
137 .B \-size_factor_max \fInumber\fP
138 Epicycles are never more than this factor smaller than their parents.
141 Option Resource Default Value
142 ------ -------- -------------
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
158 Before the drawing of the figure is begun, a preliminary calculation
159 of the path is done in order to scale the radii of the epicycles so
160 as to fit the figure on the screen or window. For the sake of speed,
161 This calculation is done with a larger timestep than the actual
162 drawing. The time-step used is the value of the
164 option multiplied by the timestepCoarseFactor resource. The default
165 value of 1 will almost always work fast enough and so this resource
166 is not available as a command-line option.
168 The program runs mostly without user interaction. When running on the
169 root window, no input is accepted. When running in its own window,
170 the program will exit if mouse button 3 is pressed. If any other
171 mouse button is pressed, the current figure will be abandoned and
172 another will be started.
174 The geometry of epicycles was perfected by Hipparchus of Rhodes at
175 some time around 125 B.C., 185 years after the birth of Aristarchus of
176 Samos, the inventor of the heliocentric universe model. Hipparchus
177 applied epicycles to the Sun and the Moon. Ptolemy of Alexandria went
178 on to apply them to what was then the known universe, at around 150
179 A.D. Copernicus went on to apply them to the heliocentric model at
180 the beginning of the sixteenth century. Johannes Kepler discovered
181 that the planets actually move in elliptical orbits in about 1602.
182 The inverse-square law of gravity was suggested by Boulliau in 1645.
184 .I Principia Mathematica
185 was published in 1687, and proved that Kepler's laws derived from
186 Newtonian gravitation.
188 The colour selection is re-done for every figure. This may
189 generate too much network traffic for this program to work well
190 over slow or long links.
192 Copyright \(co 1998, James Youngman. Permission to use, copy, modify,
193 distribute, and sell this software and its documentation for any purpose is
194 hereby granted without fee, provided that the above copyright notice appear
195 in all copies and that both that copyright notice and this permission notice
196 appear in supporting documentation. No representations are made about the
197 suitability of this software for any purpose. It is provided "as is" without
198 express or implied warranty.
200 James Youngman <jay@gnu.org>, April 1998.