attraction(6) XScreenSaver manual attraction(6)
NAME
attraction - interactions of opposing forces
SYNOPSIS
attraction [--display
host:display.screen] [--foreground
color]
[--background
color] [--window] [--root] [--window-id
number][--mono]
[--install] [--visual
visual] [--points
int] [--threshold
int]
[--mode balls | lines | polygons | splines | filled-splines | tails ]
[--size
int] [--segments
int] [--delay
usecs] [--color-shift
int]
[--radius
int] [--vx
int] [--vy
int] [--glow] [--noglow] [--orbit]
[--viscosity
float] [--walls] [--nowalls] [--maxspeed] [--nomaxspeed]
[--correct-bounce] [--fast-bounce] [--fps]
DESCRIPTION
The
attraction program has several visually different modes of
operation, all of which are based on the interactions of a set of
control points which attract each other up to a certain distance, and
then begin to repel each other. The attraction/repulsion is
proportional to the distance between any two particles.
OPTIONS
attraction accepts the following options:
--window Draw on a newly-created window. This is the default.
--root Draw on the root window.
--window-id number Draw on the specified window.
--mono If on a color display, pretend we're on a monochrome display.
--install Install a private colormap for the window.
--visual visual 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.
--points integer How many control points should be used, or 0 to select the
number randomly. Default 0. Between 3 and 15 works best.
--threshold integer The distance (in pixels) from each particle at which the
attractive force becomes repulsive. Default 100.
--mode balls | lines | polygons | tails | splines | filled-splines In
balls mode (the default) the control points are drawn as
filled circles. The larger the circle, the more massive the
particle.
In
lines mode, the control points are connected by straight
lines; the effect is something like
qix.
In
polygons mode, the control points are connected by
straight lines, and filled in. This is most interesting in
color.
In
splines mode, a closed spline is interpolated from the
control points.
In
filled-splines mode, the splines are filled in instead of
being outlines. This is most interesting in color.
In
tails mode, the path which each particle follows is
indicated by a worm-like trail, whose length is controlled by
the
segments parameter.
--size integer The size of the balls in pixels, or 0, meaning to select the
sizes randomly (the default.) If this is specified, then all
balls will be the same size. This option has an effect in
all modes, since the ``size'' of the balls controls their
mass.
--segments integer If in
lines or
polygons mode, how many sets of line segments
or polygons should be drawn. Default 500. This has no effect
in
balls mode. If
segments is 0, then no segments will ever
be erased (this is only useful in color.)
--delay microseconds How much of a delay should be introduced between steps of the
animation. Default 10000, or about 0.01 seconds.
--color-shift int If on a color display, the color of the line segments or
polygons will cycle through the color map. This specifies
how many lines will be drawn before a new color is chosen.
(When a small number of colors are available, increasing this
value will yield smoother transitions.) Default 3. This has
no effect in
balls mode.
--radius The size in pixels of the circle on which the points are
initially positioned. The default is slightly smaller than
the size of the window.
--glow This is consulted only in
balls mode. If this is specified,
then the saturation of the colors of the points will vary
according to their current acceleration. This has the effect
that the balls flare brighter when they are reacting to each
other most strongly.
In
glow mode, all of the balls will be drawn the same
(random) color, modulo the saturation shifts. In non-glow
mode, the balls will each be drawn in a random color that
doesn't change.
--noglow Don't do ``glowing.'' This is the default.
--vx pixels --vy pixels Initial velocity of the balls. This has no effect in
--orbit mode.
--orbit Make the initial force on each ball be tangential to the
circle on which they are initially placed, with the right
velocity to hold them in orbit about each other. After a
while, roundoff errors will cause the orbit to decay.
--vmult float In orbit mode, the initial velocity of the balls is
multiplied by this; a number less than 1 will make the balls
pull closer together, and a larger number will make them move
apart. The default is 0.9, meaning a slight inward pull.
--viscosity float This sets the viscosity of the hypothetical fluid through
which the control points move; the default is 1, meaning no
resistance. Values higher than 1 aren't interesting; lower
values cause less motion.
One interesting thing to try is
attraction -viscosity 0.8 -points 300 \
-size 10 -geometry =500x500
Give it a few seconds to settle down into a stable clump, and
then move the drag the mouse through it to make "waves".
--nowalls This will cause the balls to continue on past the edge of the
screen or window. They will still be kept track of and can
come back.
--walls This will cause the balls to bounce when they get to the edge
of the screen or window. This is the default behavior.
--maxspeed Imposes a maximum speed (default). If a ball ends up going
faster than this, it will be treated as though there were .9
viscosity until it is under the limit. This stops the balls
from continually accelerating (which they have a tendency to
do), but also causes balls moving very fast to tend to clump
in the lower right corner.
--nomaxspeed If this is specified, no maximum speed is set for the balls.
--fast-bounce Uses the old, simple bouncing algorithm (default). This
simply moves any ball that is out of bounds back to a wall
and reverses its velocity. This works fine for most cases,
but under some circumstances, the simplification can lead to
annoying effects.
--correct-bounce Uses a more intelligent bouncing algorithm. This method
actually reflects the balls off the walls until they are
within bounds. This can be slow if balls are bouncing a
whole lot, perhaps because of -nomaxspeed.
--graphmode none | x | y | both | speed For "x", "y", and "both", displays the given velocities of
each ball as a bar graph in the same window as the balls.
For "speed", displays the total speed of each ball. Default
is "none".
--fps Display the current frame rate and CPU load.
ENVIRONMENT
DISPLAY to get the default host and display number.
XENVIRONMENT to get the name of a resource file that overrides the global
resources stored in the RESOURCE_MANAGER property.
XSCREENSAVER_WINDOW The window ID to use with
--root.
SEE ALSO
X(1),
xscreensaver(1)COPYRIGHT
Copyright (C) 1992, 1993, 1997 by Jamie Zawinski. Permission to use,
copy, modify, distribute, and sell this software and its
documentation for any purpose 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 representations are made about the suitability of
this software for any purpose. It is provided "as is" without
express or implied warranty.
AUTHOR
Jamie Zawinski <jwz@jwz.org>, 13-aug-92.
Viscosity support by Philip Edward Cutone, III.
Walls, speed limit options, new bouncing, graphs, and tail mode fix
by Matthew Strait. 31 March 2001
X Version 11 6.09 (07-Jun-2024) attraction(6)