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 |
---|
16 | epicycle - 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 |
---|
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). |
---|
26 | |
---|
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. |
---|
30 | .SH OPTIONS |
---|
31 | .TP 8 |
---|
32 | .B \-display \fIhost:display.screen\fP |
---|
33 | Specifies which X display we should use (see the section DISPLAY NAMES in |
---|
34 | .BR X (1) |
---|
35 | for more information about this option). |
---|
36 | .TP 8 |
---|
37 | .B \-root |
---|
38 | Draw on the root window. |
---|
39 | .TP 8 |
---|
40 | .B \-window |
---|
41 | Draw on a newly-created window. This is the default. |
---|
42 | .TP 8 |
---|
43 | .B \-mono |
---|
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. |
---|
46 | .TP 8 |
---|
47 | .B \-install |
---|
48 | Install a private colormap for the window. |
---|
49 | .TP 8 |
---|
50 | .B \-noinstall |
---|
51 | Don't install a private colormap for the window. |
---|
52 | .TP 8 |
---|
53 | .B \-visual \fIviz\fP |
---|
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 |
---|
57 | |
---|
58 | .RS |
---|
59 | default, best, mono, monochrome, gray, grey, color, staticgray, staticcolor, |
---|
60 | truecolor, grayscale, greyscale, pseudocolor, directcolor, \fInumber\fP |
---|
61 | |
---|
62 | If a decimal or hexadecimal number is used, |
---|
63 | .BR XGetVisualInfo (3X) |
---|
64 | is consulted to obtain the required visual. |
---|
65 | .RE |
---|
66 | .TP 8 |
---|
67 | .B \-colors \fIN\fP |
---|
68 | How many colors should be used (if possible). The colors are chosen |
---|
69 | randomly. |
---|
70 | .TP 8 |
---|
71 | .B \-foreground \fIname\fP |
---|
72 | With |
---|
73 | .BR \-mono , |
---|
74 | this option selects the foreground colour. |
---|
75 | .TP 8 |
---|
76 | .B \-delay \fImicroseconds\fP |
---|
77 | Specifies the delay between drawing successive line segments of the |
---|
78 | path. If you do not specify |
---|
79 | .BR -sync , |
---|
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 |
---|
83 | .B \-mono |
---|
84 | is specified). |
---|
85 | .TP 8 |
---|
86 | .B \-holdtime \fIseconds\fP |
---|
87 | When the figure is complete, |
---|
88 | .I epicycle |
---|
89 | pauses this number of seconds. |
---|
90 | .TP 8 |
---|
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, |
---|
94 | meaning one pixel. |
---|
95 | .TP 8 |
---|
96 | .B \-min_circles \fIN\fP |
---|
97 | Smallest number of epicycles in the figure. |
---|
98 | .TP 8 |
---|
99 | .B \-max_circles \fIN\fP |
---|
100 | Largest number of epicycles in the figure. |
---|
101 | .TP 8 |
---|
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 |
---|
105 | to |
---|
106 | .IB "min_speed / harmonics" . |
---|
107 | .TP 8 |
---|
108 | .B \-max_speed \fInumber\fP |
---|
109 | Smallest possible value for the base speed of revolution of the |
---|
110 | epicycles. |
---|
111 | .TP 8 |
---|
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. |
---|
115 | .TP 8 |
---|
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. |
---|
120 | .TP 8 |
---|
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 |
---|
125 | .B \-harmonics |
---|
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 |
---|
129 | .B \-harmonics |
---|
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. |
---|
132 | .TP 8 |
---|
133 | .B \-size_factor_min \fInumber\fP |
---|
134 | Epicycles are always at least this factor smaller than their |
---|
135 | parents. |
---|
136 | .TP 8 |
---|
137 | .B \-size_factor_max \fInumber\fP |
---|
138 | Epicycles are never more than this factor smaller than their parents. |
---|
139 | .SH RESOURCES |
---|
140 | .EX |
---|
141 | Option 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 |
---|
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 |
---|
163 | .B \-timestep |
---|
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. |
---|
167 | .SH USER INTERFACE |
---|
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. |
---|
173 | .SH HISTORY |
---|
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. |
---|
183 | Isaac Newton's |
---|
184 | .I Principia Mathematica |
---|
185 | was published in 1687, and proved that Kepler's laws derived from |
---|
186 | Newtonian gravitation. |
---|
187 | .SH BUGS |
---|
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. |
---|
191 | .SH COPYRIGHT |
---|
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. |
---|
199 | .SH AUTHOR |
---|
200 | James Youngman <jay@gnu.org>, April 1998. |
---|