packages icon



 XWAVE(1)                       X Version 11                        XWAVE(1)
                               4 February 1991



 NAME
      xwave - A real-time perspective mesh demo for X

 SYNOPSIS
      xwave [ -amp A ] [ -bound bits ] [ -cols C ] [ -dampfactor B ] [ -demo
      nameOrNum ] [ -edit ] [ -force funcname ] [ -forcecol N ] [ -forcefull
      ] [ -forcepoint R C ] [ -forcerow N ] [ -omega M ] [ -omega2 M ] [ -
      plotvel ] [ -printdemo nameOrNum ] [ -root ] [ -rows R ] [ -springconst
      K ] [ -stereo ] [ -version ] [ -wave funcname ]


 DESCRIPTION
      Xwave plots a perspective projection of a plane grid oscillating in
      three-space in real time.  You can select the size of the grid, a
      forcing function to apply (and where to apply it), and what wave
      propagation model to use.  You can display a plot of the velocity of
      the points in the grid as well as the position.  Double buffering is
      simulated using a background pixmap.  Other options are described
      below in the "OPTIONS" section.  While the wave is being displayed,
      you can pan and zoom, stop and start updates, and make other changes.
      This is described below in the "INTERACTIVE USE" section.


 OPTIONS
      -amp A
           Select the amplitude of the forcing function.  Typical numbers
           are between 20 and 100.  Default amplitude is 100.

      -bound bits
           Select which corners and edges of the grid are bound and which
           are free.  By default, all corners and edges are bound.  If you
           specify a single "0" or "1" as the argument to -bound, it applies
           to all eight corners and edges.  Otherwise, each character in the
           string applies to one corner or edge: if that character is "0",
           the corresponding corner or edge is free; else it is bound.  The
           sequence of corners and edges in the string is: lrlc, lr, lrhc,
           hc, hrhc, hr, hrlc, lc, where l is low, h is high, r is row, and
           c is column.  For example, -bound "00111000" means the high
           column end of the grid, including those corners, are bound, and
           all other corners and edges are free.

      -cols C
           Specify how many columns are in the grid.  The minimum number of
           columns is 2.  Larger numbers give more detailed  wave displays,
           but take longer to compute and thus do not update as quickly.
           The default is 25.

      -dampfactor B
           Specify the damping factor used in the "wave" propagation model.
           See the -wave switch for more details.  The default is 0.001.




                                    - 1 -           Formatted:  July 7, 2022






 XWAVE(1)                       X Version 11                        XWAVE(1)
                               4 February 1991



      -demo nameOrNum
           Select a demonstration to run.  Each demo is equivalent to a
           specific set of switches (which you can see with the -printdemo
           command line option).  For a quick tour of the program, run
           "xwave -demo N" starting with N=0 and incrementing until it tells
           you there are no more demos.

      -edit
           Allows the user to interactively shape the wave while the program
           is running.  When the program is in edit mode, the mouse controls
           an X-shaped cursor that moves over the surface of the grid.
           Position the cursor to where you want to modify the wave and
           press and hold the left mouse button.  At this point, dragging
           the mouse up and down will modify the amplitude of the wave and
           dragging it left and right will control the frequency.  Releasing
           the mouse button will allow you to modify additional points.
           When you are finished editing points, press the right mouse
           button to enter continuous run mode.

      -force funcname
           Specify the name of the forcing function to use.  This can also
           be changed interactively (see the INTERACTIVE USE section).

      -forcecol C
           Specify that the selected forcing function is to be applied to
           all grid points in the specified column.  (The multisine forcing
           function ignores this information.)

      -forcefull
           Specify that forcing functions which do not cover the full cycle
           should force a zero value during the remainder of the cycle.  By
           default, the forcing function takes no action during this part of
           the cycle, but lets the point move freely.  This affects the
           following forcing functions: delta, pulse, onehalfsine,
           onehalfsinesquared.

      -forcepoint R C
           Specify that the selected forcing function is to be applied to
           the specified grid point.  (The multisine forcing function
           ignores this information.)

      -forcerow R
           Specify that the selected forcing function is to be applied to
           all grid points in the specified row.  (The multisine forcing
           function ignores this information.)

      -omega M
           Specify a frequency multiplier for forcing functions.  A larger
           number makes the forcing functions cycle through their values
           faster.




                                    - 2 -           Formatted:  July 7, 2022






 XWAVE(1)                       X Version 11                        XWAVE(1)
                               4 February 1991



      -omega2 M
           Specify a secondary frequency multiplier.  This number is used in
           the following forcing functions: pulse, onehalfsine,
           onehalfsinesquared.  If "-omega2 1" is specified, each of these
           functions will have a duty cycle of 1/2; if "-omega 2" is
           specifed, it will be 1/4, etc.

      -plotvel
           Specify that a plot of the velocity of each point in the grid
           should appear below the plot of the position of each point in the
           grid.  The velocity information is updated only by the "wave"
           propagation function.

      -printdemo nameOrNum
           Print the switches that comprise the specified demo, then exit.

      -root
           Plot the wave in the root window.

      -rows R
           Specify how many rows are in the grid.  The minimum number of
           rows is 2.  Larger numbers give more detailed  wave displays, but
           take longer to compute and thus do not update as quickly.  The
           default is 18.

      -springconst K
           Specify the spring constant to use in the "wave" propagation
           function.  See the -wave switch for more details.  The default is
           0.01.

      -stereo
           Plot separate projections in red and blue.  Make sure you have
           your 3-d glasses handy.  You also need a color display
           (obviously).

      -version
           Prints the current version of xwave and exits.

      -wave funcname
           Specify the name of the wave propagation function to use.  You
           can specify none, which allows you to see the "naked" forcing
           function.  You can specify relax, which gives a pleasant demo
           with the multisine forcing function (the original xwave program).
           You can specify wave, which uses a physical wave propagation
           model.  In the wave model, each point has a mass of 1 and a
           velocity as well as a position.  A simple spring model is used, F
           = -K*x -B*v, where K is the spring constant (specified with
           -springconst) and B is the damping factor (specified with
           -dampfactor).  The distance used for x is the simple vertical
           distance between a point and its neighbors.  Note that since this
           is a discreet simulation, the simulation is highly dispersive



                                    - 3 -           Formatted:  July 7, 2022






 XWAVE(1)                       X Version 11                        XWAVE(1)
                               4 February 1991



           (low frequencies travel faster), so single pulses do not travel
           very well.  However, you can still see the effects of reflection
           against a free or bound end, set up nice standing waves, see how
           the velocity is out of phase with the position, etc.


 INTERACTIVE USE
      While xwave is running, you can change the perspective by using the
      mouse buttons.  You can pan the picture as it is running by holding
      down the middle mouse button and moving the mouse.  You can zoom in
      and out by holding down the left or right mouse buttons.  (Note that
      these operations do not work unless xwave is running in continuous run
      mode.) There are a number of single-key keyboard commands you can
      enter into the graphics window of xwave.  These commands can be
      entered whether or not xwave is in continuous run mode.  If the
      command is not understood, the bell is rung.  Note that there may be a
      bit of delay in processing a keyboard command when the program is in
      continuous run mode.

      c    Clear the data and reset the forcing function time; everything
           starts over again.

      d    Load the forcing function data.  This is useful when in step
           mode.

      f    Select a different forcing function.  The new forcing function
           name is printed out.

      p    Print out data.  Prints out all velocity and position data which
           is non-zero.  Mainly useful in step mode for debugging.

      q    Quit the program.

      r    Toggle run/step mode.  In run mode, the program runs continuously
           and updates the screen.  This consumes 100% of the available cpu
           time, and looks nice.  In step mode, you can step through each
           generation by pressing the space bar, and see in detail how the
           grid changes at each step.  By default, the program comes up in
           continuous run mode.

      t    Toggle timing mode.  When the program is in time mode, it prints
           an approximation of how many frames per second it is displaying.
           This is re-calculated and printed every 50 frames.

      w    Select a different wave propagation function.  The new
           propagation function name is printed out.

      <space>
           Step (when in step mode).  Calculates and displays the grid at
           the next time point.




                                    - 4 -           Formatted:  July 7, 2022






 XWAVE(1)                       X Version 11                        XWAVE(1)
                               4 February 1991



 AUTHORS
      Paul Riddle (paulr@umbc3.umbc.edu)
      Mike Friedman (mikef@umbc3.umbc.edu)
      Jim McBeath (jimmc@hisoft.uucp)


















































                                    - 5 -           Formatted:  July 7, 2022