packages icon



 4va(1)                                                               4va(1)
                                    X11R4



 NAME
      4va, ctorus, cutctorus, 4vdmake - 4D object tumbler for X-Windows and
      object generation programs

 SYNOPSIS
      4va [{ -xy -xz -yz -xw -yw -zw } <angle> ] [-np] [-ns] [-nt] [-cw] [
      -zd <dist> ] [ -wd <dist> ] [ -lc <color> ] [ -bc <color> ] [ -lw
      <width> ] [ -d <display> ] [ -s <scale> ] [ -h | -? ] <object-file>

      ctorus <x-increments> <y-increments>
      cutctorus <x-increments> <y-increments>

      4vdmake <x-grid-size> <y-grid-size>


 DESCRIPTION
      4va is a fourth dimensional visualization program for X-Windows. It
      takes as input a file describing an object in up to 4 dimensions and
      tumbles it in a window according to rotation values given on the
      command line.

    Options
      -xy, -xz, -yz, -xw, -yw, -zw <angle>
           Specify the amount of rotation each cycle in each of the 6 planes
           (x-y, x-z, and so on). The angle is given in degrees and appended
           directly to the option, as in -xw4.5.  If any of these options
           are set on the command line, the defaults are cleared. The
           defaults are -xz0.6, -xw0.6, and -yw0.45.

      -np  Tell 4va not to do perspective. Normally perspective is done on
           both the z and w axes.

      -ns  Don't rescale the object in the window if the window is resized.
           Normally, if the window is resized, the object is rescaled in
           proportion to the new window size. Specifying -ns turns this off.

      -nt  Don't set a name for the title bar. On some window managers, this
           will suppress a title bar even being displayed on the window.

      -cw  Tell 4va to clear the window each cycle with a call to
           XClearWindow() instead of drawing over the old object in the
           background color. Using -cw is nice for larger objects, but for
           smaller objects letting 4va draw over the lines is faster and
           doesn't flicker.

      -zd <dist>, -wd <dist>
           Specify the viewer's distance, in pixels, along the z and w axes
           for perspective purposes. Naturally this doesn't have much
           meaning if -np is specified. The default is 430.0. Place the
           number directly after the switch, as in -zd400.0.




                                    - 1 -      Formatted:  December 26, 2024






 4va(1)                                                               4va(1)
                                    X11R4



      -lc <color>, -bc <color>
           Specify the names of the foreground (line) and background colors,
           as in -lc LightGreen.  The defaults are black background with red
           lines.

      -lw <width>
           Specify the width of the object's lines, in pixels. The default
           is a width of 0, which is the hardware-defined fastest line.
           Example is -lw5.

      -d <display>
           Specify the display name. 4va first checks the -d switch, then
           the DISPLAY environment variable, then then defaults to the
           display unix:0.

      -s <scale>
           Specify the scaling factor for all four dimensions, as in
           -s150.0.  The default is 200.0.

      -h, -?
           Get a listing of 4va's options.



    Ctorus, cutctorus, and 4vdmake options
      These three programs are object file generators for 4va. Ctorus
      generates a Clifford Torus with the densities named. For example,
      ctorus 20 20 will generate a Clifford Torus file with 20 increments
      around each of the two sets of circles defining the torus (the x-y set
      and the z-w set).

      Cutctorus is the same as ctorus, except that all of the circles in one
      direction are invisible, making the torus easier to see.

      4vdmake is a "customizable" object generation program that produces
      objects in three dimensions. The program generates a grid of points
      and lines on the x and y plane and applies to them a function (defined
      in the code) for the z value of each coordinate. This is a quick hack
      to let 4va display 3D functions. It can easily be modified to generate
      4D functions. 4vdmake fits the grid (with the density on the x and y
      axes given on the command line) into a -1 to 1 square on the x and y
      axes.

    Object files
      Object files (usually with the extension .4vd) have the following
      format:

           p={ number-of-points }

           <points...>




                                    - 2 -      Formatted:  December 26, 2024






 4va(1)                                                               4va(1)
                                    X11R4



           l={ number-of-lines }

           <lines...>

           n=name-of-object


      For example, a simple object file for a single line might look like

           p={2}
           1.0 1.0 1.0 1.0
           -1.0 -1.0 -1.0 -1.0
           l={1}
           0 1
           n=StupidLine

      If the number-of-points and number-of-lines do not match the number of
      points and lines in their sections, 4va will read the incorrect amount
      of data from the object file and will get confused.  As you can see,
      each point specifies the x, y, z, and w coordinates as floating-point
      numbers. If you're only creating a 3D object, for example, you can set
      all the w values to 0.0. Each line specifies the points between which
      the line extends. In the above example, we have one line between point
      0 and point 1 (notice that numbering starts with 0).


 NOTES
      4va allocates memory for objects dynamically. If 4va runs out of
      memory it will exit with a return code of -1 and print a "malloc"
      error message.

      4va does not check that the object file that it's reading is well-
      behaved.  If your object file is corrupt, 4va may hang.

      4va has worked on every system I've tried it on; it's basic enough
      that it should port to your machine. If you have problems, let me
      know.

 AUTHOR
      Matt Welsh (welsh@odin.ncssm.edu). Please send me any questions, bugs,
      or suggestions.













                                    - 3 -      Formatted:  December 26, 2024