attraction
XScreenSaver(r)                                   XScreenSaver(r)



NAME
       attraction - interactions of opposing forces

SYNOPSIS
       attraction   [-display  host:display.screen]  [-foreground
       color]  [-background  color]  [-window]  [-root]   [-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] [-mouse]
       [-no-mouse] [-mouse-size] [-walls] [-nowalls]  [-maxspeed]
       [-nomaxspeed] [-correct-bounce] [-fast-bounce]

DESCRIPTION
       The  attraction  program  has  several  visually different
       modes of operation, all of which are based on the interac-
       tions  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.

       -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 interest-
               ing in color.

               In  tails  mode, the path which each particle fol-
               lows 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
               100.  This has no effect in balls mode.   If  seg-
               ments  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  seg-
               ments  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 num-
               ber 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 75 \
                      -mouse -geometry =500x500

               Give it a few seconds to settle down into a stable
               clump, and then move the mouse through it to  make
               "waves".

       -mouse  This  will cause the mouse to be considered a con-
               trol point; it will not  be  drawn,  but  it  will
               influence  the  other  points, so you can wave the
               mouse and influence the images being created.

       -no-mouse
               Turns off -mouse.

       -mouse-size integer
               In -mouse mode, this sets the mass  of  the  mouse
               (analagously to the -size parameter.)

       -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 tendancy 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 circum-
               stances, 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".

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_MAN-
               AGER property.

SEE ALSO
       X(X), xscreensaver(r)

COPYRIGHT
       Copyright (C) 1992, 1993, 1997 by Jamie Zawinski.  Permis-
       sion to use, copy, modify, distribute, and sell this soft-
       ware 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 pro-
       vided "as is" without express or implied warranty.

AUTHOR
       Jamie Zawinski <jwz@jwz.org>, 13-aug-92.

       Viscosity and mouse 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                14-Jun-97             XScreenSaver(r)