home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / cad / hyperg11.arj / HYPERGEO.DOC < prev    next >
Text File  |  1992-05-27  |  144KB  |  3,174 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.                                  HYPERGEO
  14.                                 Version 1.1
  15.  
  16.  
  17.  
  18.  
  19.  
  20.                 A program for the investigation of the geometrical
  21.                 properties of four-dimensional hyperspace.
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.                    USER'S GUIDE AND PROGRAM REFERENCE MANUAL
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.                                Stuart Esten
  46.  
  47.                               33 Banks Avenue
  48.                             Lexington, MA  02173
  49.                                    USA
  50.  
  51.  
  52.         HYPERGEO    Version 1.1                             Page ii
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.     COPYRIGHT NOTICE
  64.  
  65.  
  66.             HYPERGEO is Copyrighted (c) 1992 by Stuart Esten.
  67.  
  68.             This document is Copyrighted (c) 1992 by Stuart Esten.
  69.  
  70.             ALL RIGHTS RESERVED.
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.     DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITIES
  81.  
  82.  
  83.         Due to the nature of computer programming it is impossible to
  84.         guarantee the performance of this product.  The author makes no
  85.         warranty, expressed or implied, in regard to this program and its
  86.         accompanying data files and documentation.  In no event shall the
  87.         author of this program be liable for incidental or consequential
  88.         damages relating to or arising out of its use.
  89.  
  90.  
  91.         HYPERGEO    Version 1.1                             Page iii
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.     LICENSE
  101.  
  102.  
  103.         HYPERGEO is a copyrighted computer program.  It is not public domain
  104.         or free software.
  105.  
  106.         Copies of the program are made available on a trial basis to
  107.         prospective users according to the distribution system known as
  108.         "shareware".  Persons acquiring a shareware copy of HYPERGEO are
  109.         granted a limited license to use the program for an evaluation
  110.         period not to exceed 30 days.  At the end of that time they must
  111.         either become registered users of HYPERGEO by paying the requisite
  112.         registration fee or cease using the program.  Recipients of the
  113.         shareware copy of HYPERGEO may make duplicate copies of the program
  114.         material for the express purpose of distribution to other
  115.         prospective users, provided that:
  116.  
  117.             *   Each copy contains all HYPERGEO program files, data files,
  118.                 and documentation files complete and unmodified;
  119.  
  120.             *   No payment is charged for the shareware copies beyond normal
  121.                 charges for the cost of the diskette and its shipment and
  122.                 handling.
  123.  
  124.  
  125.         Registered users of HYPERGEO are granted license to use the software
  126.         without time limit on a single computer.  A registered copy of the
  127.         HYPERGEO program material may not be duplicated other than for
  128.         back-up purposes.  A registered copy of HYPERGEO may not be
  129.         distributed to others.
  130.  
  131.  
  132.         HYPERGEO    Version 1.1                             Page iv
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.                           _______
  140.                      ____|__     |               (R)
  141.                   --|       |    |-------------------
  142.                     |   ____|__  |  Association of
  143.                     |  |       |_|  Shareware
  144.                     |__|   o   |    Professionals
  145.                   -----|   |   |---------------------
  146.                        |___|___|    MEMBER
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.     ASSOCIATION OF SHAREWARE PROFESSIONALS OMBUDSMAN POLICY
  155.  
  156.  
  157.         This program is produced by a member of the Association of Shareware
  158.         Professionals (ASP).  ASP wants to make sure that the shareware
  159.         principle works for you.  If you are unable to resolve a
  160.         shareware-related problem with an ASP member by contacting the
  161.         member directly, ASP may be able to help.  The ASP Ombudsman can
  162.         help you resolve a dispute or problem with an ASP member, but does
  163.         not provide technical support for members' products.  Please write
  164.         to the ASP Ombudsman at 545 Grover Road, Muskegon, MI 49442-9427 or
  165.         send a CompuServe message via CompuServe Mail to ASP Ombudsman
  166.         70007,3536.
  167.  
  168.  
  169.         HYPERGEO    Version 1.1                             Page v
  170.  
  171.  
  172.  
  173.  
  174.     Table of Contents
  175.  
  176.  
  177.     Section 1.  Introduction.......................................  1-1
  178.  
  179.     Section 2.  From Hyperspace to the Video Screen................  2-1
  180.         2.1         From Four Dimensions to Three..................  2-1
  181.         2.1.1           Projection.................................  2-1
  182.         2.1.2           Intersection...............................  2-2
  183.         2.2         From Three Dimensions to Two...................  2-2
  184.  
  185.     Section 3.  The HYPERGEO Program...............................  3-1
  186.         3.1         General Structure..............................  3-1
  187.         3.2         The HYPERGEO Display Screen....................  3-3
  188.         3.3         Geometry Manipulations.........................  3-6
  189.         3.3.1           Rotations..................................  3-7
  190.         3.3.2           Translation of the Intersecting Hyperplane.  3-10
  191.         3.3.3           View Control...............................  3-11
  192.         3.4         Special 3-D Geometry Definition................  3-12
  193.  
  194.     Section 4.  Inner Workings.....................................  4-1
  195.         4.1         Units..........................................  4-1
  196.         4.2         Verification of the Geometry Definition........  4-1
  197.         4.3         Calculating 4-D to 3-D Projections.............  4-2
  198.  
  199.     Section 5.  Restrictions and Limitations.......................  5-1
  200.         5.1         Geometry Definition File.......................  5-1
  201.         5.2         Mathematical Precision.........................  5-2
  202.  
  203.     Section 6.  Supplied Geometry Definition Files.................  6-1
  204.  
  205.     Appendix A. Geometry Definition File...........................  A-1
  206.  
  207.     Appendix B. Configuration File.................................  B-1
  208.  
  209.     Appendix C. Command Line Arguments.............................  C-1
  210.  
  211.     Appendix D. Interactive Commands...............................  D-1
  212.         D.1         Keyboard Commands and the Modifier Keys........  D-1
  213.         D.2         Mouse Selected Interactive Commands............  D-2
  214.         D.3         Interactive Parameter Specification............  D-3
  215.         D.4         HYPERGEO Interactive Keyboard Commands.........  D-4
  216.  
  217.     Appendix E. Running HYPERGEO under Microsoft Windows...........  E-1
  218.  
  219.     Appendix F. Registration Form..................................  F-1
  220.  
  221.  
  222.         HYPERGEO    Version 1.1                             Page 1-1
  223.  
  224.  
  225.  
  226.  
  227.     Section 1.    Introduction
  228.  
  229.  
  230.         "I tried turning the hypercube around, moving it away, bringing
  231.         it up close, turning it around another way.  Suddenly I could
  232.         feel it!  The hypercube had leaped into palpable reality, as I
  233.         learned how to manipulate it, feeling in my fingertips the power
  234.         to change what I saw and change it back again.  The active control
  235.         at the computer console created a union of kinesthetics and visual
  236.         thinking which brought the hypercube up to the level of intuitive
  237.         understanding."
  238.  
  239.                                         "The Mathematical Experience"
  240.                                         Philip J. Davis & Reuben Hersh
  241.  
  242.  
  243.  
  244.     For reasons known only to the Great Cosmic Programmer, the universe in
  245.     which we dwell possesses three spatial dimensions.  Our senses of
  246.     physical perception operate intuitively and naturally in these three
  247.     dimensions.  Indeed, it requires an act of intellectual imagination
  248.     to consider the nature of alternative dimensional realities.  With some
  249.     contrivance we can picture the peculiar qualities of a world aware of
  250.     only two dimensions.  This is the substance of Edwin Abott Abott's
  251.     famous fantasy "Flatland" (written from the viewpoint of Abott's two-
  252.     dimensional narrator A Square).  We can make the mental adjustment
  253.     required to conceive of a two-dimensional universe by imagining one of
  254.     our three dimensions to be somehow squeezed down to zero extent and thus
  255.     out of existence.  It is a simple matter to draw pictures of
  256.     two-dimensional objects; in fact, the nature of writing surfaces and
  257.     writing implements is such that all our drawings are already limited to
  258.     two dimensions (it is only the insistently three-dimensional nature of
  259.     our sense of sight that causes us to "see" depth in our flat artwork).
  260.     Perceptions in two dimensions are accessible because they already exist
  261.     within our three-dimensional space and because we have at hand ready
  262.     physical analogs in the form of flat surfaces of solid objects.
  263.  
  264.     In "Flatland", Abott makes his narrator aware of the existence of
  265.     three-dimensional "Spaceland" although A Square is unable to fully
  266.     conceive of its nature.  He further contemplates the analogous
  267.     relationship between Spaceland and a still higher universe possessing
  268.     four dimensions.  In this scenario we, the inhabitants of our familiar
  269.     three-dimensional reality, become the Flatlanders, constitutionally
  270.     unable to perceive the totality of the encompassing higher realm.
  271.  
  272.     When we try to imagine the shape and configuration of "hyperobjects" -
  273.     that is, objects constructed in four dimensions - we are stopped short
  274.     by the inability of our conceptual powers to find a place for the fourth
  275.     dimension.  For whatever reason, there simply is no way to twist or
  276.  
  277.  
  278.         HYPERGEO    Version 1.1                             Page 1-2
  279.  
  280.  
  281.     rearrange four separate orthogonal dimensions so they make spatial sense
  282.     to us.
  283.  
  284.     Our best hope for grasping the essence of four-dimensional reality lies
  285.     in somehow reducing the full complexity of hyperobjects to a simplified
  286.     image that can be represented in three dimensions.  Although the full
  287.     four-dimensional "depth" of the hyperobject's geometry cannot be fully
  288.     conveyed this way in a single image, it is possible by generating
  289.     sequences of such images - each corresponding to a different orientation
  290.     of the hyperobject in four-dimensional space - to begin to comprehend
  291.     the shape of the fourth dimension.  Naturally, computers and the
  292.     capabilities of computer graphics are ideally suited for use as tools in
  293.     generating such images, and it is well within the powers of the typical
  294.     personal computer equipped with a standard display device to serve as a
  295.     research platform for the investigation of hyperspace.
  296.  
  297.  
  298.         HYPERGEO    Version 1.1                             Page 2-1
  299.  
  300.  
  301.  
  302.  
  303.     Section 2.    From Hyperspace to the Video Screen
  304.  
  305.  
  306.     When a computer is used to generate images derived from a
  307.     four-dimensional hyperobject, two separate stages of geometric
  308.     transformation must be performed.  First, the four-dimensional object
  309.     must be reduced to a particular three-dimensional image based on the
  310.     object's orientation and position in hyperspace.  Second, the resulting
  311.     three-dimensional image must be represented on the flat, two-dimensional
  312.     surface of the computer's display device.  Because each of these
  313.     transformations entails the loss of dimensional information, it is
  314.     desirable to provide the computer user with as much control as possible
  315.     over the manner in which the images are constructed and displayed.
  316.  
  317.  
  318.     2.1  From Four Dimensions to Three
  319.  
  320.     There are two basic approaches for generating a three-dimensional image
  321.     from a four-dimensional object: projection and intersection.  Each is
  322.     highly analogous to the same technique applied to the reduction of a
  323.     three-dimensional object to a flat, two-dimensional representation.
  324.  
  325.  
  326.     2.1.1  Projection
  327.  
  328.     Projection is the mathematically simpler of the two.  It entails the
  329.     construction of an imaginary "viewscreen" in hyperspace and the
  330.     projection of each point in the hyperobject onto that viewscreen.  The
  331.     calculations are performed by considering the straight lines that run
  332.     between each point in the hyperobject and a fixed four-dimensional
  333.     viewpoint; the desired projection points are the intersections of these
  334.     lines with the viewscreen.  But because this is four-dimensional
  335.     hyperspace, the viewscreen is itself a three-dimensional "hyperplane"
  336.     (not just a simple two-dimensional plane), and the projection points all
  337.     possess three dimensions.  The positions of the viewpoint and viewscreen
  338.     in hyperspace relative to the hyperobject determine the degree of
  339.     "perspective" in the resulting three-dimensional image.  (This process
  340.     is entirely analogous to the projection of a 3-D object onto a flat 2-D
  341.     viewscreen; in fact, just such a 3-D to 2-D projection is used
  342.     subsequently to generate the final graphical output.)
  343.  
  344.     In a 4-D to 3-D projection, every point in the original hyperobject is
  345.     always visible as a corresponding projected point in the 3-D image
  346.     (although, of course, a point may from time to time happen to be hidden
  347.     behind other points or lines).  The overall 3-D image that results is a
  348.     network of connected lines corresponding to the vertexes and edges of
  349.     the 4-D hyperobject; it is not itself a simple 3-D polyhedron.  The
  350.     complexity of this network relates directly to the four-dimensional
  351.     structure of the hyperobject.
  352.  
  353.  
  354.         HYPERGEO    Version 1.1                             Page 2-2
  355.  
  356.  
  357.     2.1.2  Intersection
  358.  
  359.     The second approach for reducing a four-dimensional hyperobject to a
  360.     three-dimensional image involves calculating the intersection of the
  361.     hyperobject with a three-dimensional hyperplane.  This can be thought of
  362.     as cutting a "slice" through the hyperobject and viewing the resulting
  363.     cross-section.  But again, because the cutting instrument is a
  364.     hyperplane in the case of the 4-D to 3-D intersection, the object that
  365.     is determined by the cut is three-dimensional and forms a simple 3-D
  366.     polyhedron - assuming that the original 4-D hyperobject is itself simple
  367.     and is externally convex.  (The 3-D to 2-D analogy involves making a
  368.     planar cut through the 3-D geometry and viewing the flat polygonal
  369.     outline of the cross-section.)
  370.  
  371.     In a 4-D to 3-D intersection, the only portion of the hyperobject that
  372.     contributes to the 3-D image is that lying exactly on the intersecting
  373.     hyperplane; all the rest is lost and invisible.  For this reason, an
  374.     intersection can result in very minimal 3-D polyhedra such as pyramids
  375.     and box shapes, even from a complex hyperobject.  In fact, if the
  376.     intersecting hyperplane is positioned (in hyperspace) entirely outside
  377.     the extents of the hyperobject, the resulting 3-D image will be empty.
  378.     It is generally most revealing to examine the sequence of intersections
  379.     that result when the cutting hyperplane is gradually moved through the
  380.     hyperobject, starting at one face or edge and working across to the
  381.     opposite.  By taking a number of such sequences for various orientations
  382.     of the hyperobject in four-space, the user can achieve a sense of its
  383.     "extradimensional" structure.
  384.  
  385.  
  386.     2.2  From Three Dimensions to Two
  387.  
  388.     All the options available in the HYPERGEO program for converting a
  389.     three-dimensional image into a viewable two-dimensional picture on the
  390.     computer's display are variations of the projection technique referred
  391.     to above.  Each 3-D point is projected onto a 2-D viewscreen by
  392.     calculating where the line that runs between the 3-D point and a fixed
  393.     3-D viewpoint intersects the viewscreen.  However, unlike the case for
  394.     4-D to 3-D projections, for 3-D to 2-D projections the viewscreen and
  395.     viewpoint don't have to be invented; they correspond to the surface of
  396.     the real display device and the eye of the (presumably real) viewer.
  397.     Given this basic technique for projecting a 3-D image onto a flat
  398.     screen, a great deal can be done to enhance the meaningfulness of the
  399.     resulting 2-D picture.  The following alternatives are available:
  400.  
  401.  
  402.         *  Orthographic Projection
  403.  
  404.         This is the simplest and least revealing form of 2-D image.  It is
  405.         generated by assuming the viewpoint to be at infinity and projecting
  406.         all 3-D points orthogonally onto the screen.  The resulting picture
  407.         is a "wire-frame" representation of the 3-D object's edges.
  408.  
  409.  
  410.         HYPERGEO    Version 1.1                             Page 2-3
  411.  
  412.  
  413.  
  414.         *  Perspective Projection
  415.  
  416.         This is a straightforward linear projection similar to orthographic
  417.         except that it uses a finite value for the distance between the
  418.         viewpoint and the screen.  It also generates a wireframe
  419.         representation but provides a sense of perspective which gives some
  420.         sense of 3-D depth.  It is enhanced by allowing the user to modify
  421.         the apparent eye-to-screen distance, thus adjusting the amount of
  422.         perspective in the picture.
  423.  
  424.  
  425.         *  Stereoscopic Projection (Anaglyph)
  426.  
  427.         This uses the realistic eye-to-screen distance of the simple
  428.         perspective approach, but two separate images are generated which
  429.         correspond to the projections as perceived by the right and left eye
  430.         (the calculation of the projections takes into account the
  431.         distance between the eyes).  When the two images are displayed in
  432.         contrasting colors (typically red and blue or red and green), they
  433.         can be viewed through filtering "3-D" glasses which cause the brain
  434.         to perceive the image with full three-dimensional depth.  Although
  435.         wearing the colored glasses is somewhat cumbersome, this method
  436.         produces far and away the most vivid and revealing impressions of
  437.         the structure of the 3-D object.
  438.  
  439.         (The general technique of generating dual projections that
  440.         correspond to each eye's separate view is known as "stereoscopic"
  441.         projection.  The particular instance of stereoscopic viewing that
  442.         uses different colors for the two projections with matching colored
  443.         filters for the eyes is called an "anaglyph".)
  444.  
  445.  
  446.         *  Hidden-line Projection
  447.  
  448.         This approach begins with the wire-frame representation generated by
  449.         a normal perspective projection.  Additional calculations are
  450.         performed that prevent the display of any edge lying behind a face
  451.         of the 3-D object.  This causes the object to appear opaque.  The
  452.         calculations required to determine which edges (or portions of an
  453.         edge) to hide are extensive and slow the program down considerably.
  454.  
  455.  
  456.         *  Solid Projection
  457.  
  458.         A solid projection performs all the processing required by a
  459.         hidden-line projection plus some additional calculations to
  460.         determine the orientation of each visible face of the 3-D object.
  461.         Rather than drawing the edge outlines of the object, the faces are
  462.         filled in using either a density of fill pattern or a particular
  463.  
  464.  
  465.         HYPERGEO    Version 1.1                             Page 2-4
  466.  
  467.  
  468.         shade of color that corresponds to the obliqueness of the face as
  469.         seen from a theoretical light source; faces that are most directly
  470.         illuminated are filled the brightest.  The result is a fairly
  471.         realistic rendering of the 3-D object as solid.  The calculations
  472.         required make solid projections even slower than hidden-line
  473.         projections.
  474.  
  475.  
  476.         (Note: since hidden-line and solid projections require the 3-D
  477.         object to be a simple polyhedron, they can only be used with 3-D
  478.         images created by a 4-D intersection, not those created by 4-D
  479.         projections.)
  480.  
  481.  
  482.         HYPERGEO    Version 1.1                             Page 3-1
  483.  
  484.  
  485.  
  486.     Section 3.    The HYPERGEO Program
  487.  
  488.  
  489.     HYPERGEO is a program written for the IBM-PC and compatible computers
  490.     running the PC-DOS or MS-DOS operating system.  It requires about 180K
  491.     bytes of memory plus whatever is needed for the data requirements of the
  492.     particular geometry currently active in the program.  For most ordinary
  493.     objects (including the basic hypercube) memory requirements are quite
  494.     modest, but they can increase tremendously for very large and complex
  495.     four-dimensional geometries.  The program does not make use of expanded
  496.     or extended memory, so the 640K DOS barrier is the absolute limiting
  497.     factor on the size of geometries that can be handled by HYPERGEO.
  498.  
  499.     The program will generate graphical output for EGA, VGA, or Hercules
  500.     display devices.  It does not support CGA graphics.  For Hercules (and
  501.     optionally for the others) the graphics are monochrome, and the
  502.     stereoscopic anaglyph display mode is unavailable.  The performance of
  503.     HYPERGEO is identical on EGA and VGA systems with the exception of two
  504.     areas in which the VGA's higher performance is utilized: first, all
  505.     graphics are drawn with the higher VGA display resolution (640x480
  506.     pixels); and second, the enhanced VGA color capabilities are used to
  507.     provide superior solid surface rendering.  No non-standard, so-called
  508.     "super-VGA" display modes are supported in this version.
  509.  
  510.     HYPERGEO performs extensive floating-point calculations, and the speed
  511.     of the program will be enhanced considerably by the presence of a math
  512.     coprocessor chip such as an 80287 or 80387.  If the system has a math
  513.     coprocessor, HYPERGEO will detect its presence automatically.  All
  514.     features are functional without a coprocessor, but performance will be
  515.     as much as several times slower.
  516.  
  517.     If a mouse pointing device is on the system, it can be used to invoke
  518.     the interactive rotation commands (see below).  However, a mouse is not
  519.     required since all commands can be executed through keyboard entry.
  520.     Only the left and right mouse buttons are used, so a two-button mouse is
  521.     as good as a three-button mouse.
  522.  
  523.  
  524.     3.1  General Structure
  525.  
  526.     The HYPERGEO program accepts a description of the topology of a
  527.     four-dimensional hyperobject.  This description is contained in a
  528.     "geometry definition file" which is a plain text file that can be edited
  529.     by the user.  It contains coordinate information for each vertex point
  530.     of the hyperobject plus connectivity information that indicates which
  531.     vertexes are joined by edges.  See Appendix A for a complete discussion
  532.     of the format of this file.  The program analyzes the topology and
  533.     determines which edges form external faces and, in turn, which faces
  534.     form external hyperfaces.
  535.  
  536.  
  537.         HYPERGEO    Version 1.1                             Page 3-2
  538.  
  539.  
  540.     The program also accepts various parameters that control the manner in
  541.     which the hyperobject is displayed.  There are two ways in which these
  542.     parameters are given to the program: through a special configuration
  543.     file or as command-line arguments.  (Note: There is not a complete
  544.     correspondence between all possible configuration file parameters and
  545.     all possible command-line arguments.  Some parameters can be specified
  546.     only in the configuration file and some only as command-line arguments.)
  547.     See Appendix B for a full description of the format of the configuration
  548.     file and Appendix C for a description of the available command-line
  549.     arguments.
  550.  
  551.     A section of configuration parameters can also be appended to the end of
  552.     a geometry definition file following all topology information; the
  553.     format is the same as in the primary configuration file.  In effect,
  554.     this acts as a secondary configuration file which will apply only to
  555.     that particular geometry file.
  556.  
  557.     The order of precedence for conflicting parameters is as follows.
  558.     Command-line arguments take the highest precedence and will always
  559.     override a corresponding parameter in the configuration file.  Also,
  560.     configuration parameters contained in a geometry definition file take
  561.     precedence over corresponding parameters in the primary configuration
  562.     file.  Finally, every parameter has a pre-defined default value which
  563.     will be used in the absence of any specification via the configuration
  564.     file or the command line.  The default values for all parameters are
  565.     listed in the appendixes.  To summarize the order of precedence for the
  566.     various avenues of parameter specification, they are, from highest to
  567.     lowest:
  568.  
  569.         *   Command line arguments
  570.  
  571.         *   Configuration parameters in current geometry definition file
  572.  
  573.         *   Configuration parameters in primary configuration file
  574.  
  575.         *   Program's internal default values
  576.  
  577.     It should be noted that no configuration file or command-line arguments
  578.     are absolutely required.  The program will operate without them using
  579.     reasonable default values.
  580.  
  581.     Once all geometry and configuration information has been read in and
  582.     processed, the HYPERGEO program creates a display of the image of the
  583.     hyperobject.  At this point, the user has access to a set of commands
  584.     which facilitate the interactive manipulation of the hyperobject's
  585.     display.  These interactive commands are described throughout subsequent
  586.     sections of this document and are summarized in Appendix D.
  587.  
  588.  
  589.         HYPERGEO    Version 1.1                             Page 3-3
  590.  
  591.  
  592.  
  593.     3.2  The HYPERGEO Display Screen
  594.  
  595.     The screen displayed by the HYPERGEO program consists of two areas: the
  596.     primary graphics area where the image of the geometrical object being
  597.     examined is displayed, and an optional menu and mouse control pad area.
  598.     The user may select whether or not to display the menu area.  If it is
  599.     not displayed, the primary graphics area is the entire screen.   When
  600.     the menu area is displayed, it occupies the right edge of the screen,
  601.     and the primary graphics area fills the entire remaining screen.
  602.  
  603.     The menu area lists a number of display parameters that may be modified
  604.     interactively by the user.  It also contains a panel of command
  605.     selection boxes that may be activated by the mouse to perform various
  606.     rotations of the object being displayed.  A mouse is not required for
  607.     the HYPERGEO program; all mouse functions may also be invoked through
  608.     keyboard commands.  However, the mouse does provide a more naturally
  609.     intuitive feeling of control over the manipulation of the geometry being
  610.     studied.  The mouse functions are only available when the menu area is
  611.     displayed.  (All keyboard commands are always available regardless of
  612.     whether the menu area is displayed or not.)
  613.  
  614.     The HYPERGEO program automatically scales and centers the geometry
  615.     display within the primary graphics area.  The user may subsequently
  616.     modify the scale and position of the display as desired.
  617.  
  618.     Some of the interactive commands will prompt for additional keyboard
  619.     input (such as a numeric value, a color name, or a file name).  This is
  620.     done using a special prompting window which pops up in the middle of the
  621.     primary graphics area.  The user should type in the appropriate entry
  622.     which will echo in the prompting window, and should terminate the entry
  623.     by pressing <Enter>; this indicates that the entry is complete and
  624.     correct and initiates the particular command.  Pressing <Esc> at any
  625.     time while a prompting window is displayed will dismiss the window and
  626.     cancel the command.
  627.  
  628.     A similar message window will appear whenever an error condition (such
  629.     as invalid command input) must be reported.  No user input is asked for;
  630.     the window serves only to convey a message.  Once it has been read, the
  631.     user may dismiss the window by pressing any key.
  632.  
  633.     A special message window is the HYPERGEO Information Window.  This
  634.     window contains some basic data describing the geometry and topology of
  635.     the currently active object, and it also contains the HYPERGEO copyright
  636.     statement.  By default, the Information Window is displayed
  637.     automatically upon the initial start up of the program and every time a
  638.     new geometry definition is read in.  However, the program may be
  639.     configured to bypass this.  An interactive command exists to display the
  640.     Information Window at any time during normal operation of the HYPERGEO
  641.     program.  The Information Window is a normal message window and may be
  642.     dismissed by pressing any key.
  643.  
  644.  
  645.         HYPERGEO    Version 1.1                             Page 3-4
  646.  
  647.  
  648.     On-line help is available at all times within the HYPERGEO program.  An
  649.     interactive command brings up the display of a help window that
  650.     temporarily overwrites the entire screen.  The help window contains a
  651.     brief description of each of the interactive commands that the user may
  652.     invoke to manipulate the active geometry.  Pressing any key dismisses
  653.     the help window and returns the HYPERGEO display to its previous state.
  654.  
  655.     Note: The HYPERGEO program does NOT use the (more or less) standard F1
  656.     key to bring up its on-line help window.  Instead it uses the '?' key.
  657.     This frees the function keys (including F1) to accommodate other
  658.     interactive commands.
  659.  
  660.     For systems with color EGA or VGA displays, the user has control over
  661.     the colors used to draw the various components which comprise the
  662.     overall graphical output.  The colors are specified using statements in
  663.     the configuration file and may be set to any one of the sixteen standard
  664.     EGA colors (listed in Appendix B).  In addition, the color used to draw
  665.     the actual edge lines of the geometrical object itself can be modified
  666.     interactively from within the HYPERGEO program.  In the absence of any
  667.     user specification, HYPERGEO uses a set of default colors which are
  668.     believed to provide an attractive and comfortably viewable appearance
  669.     (although, of course, such matters are subject to the contentiousness of
  670.     individual tastes).
  671.  
  672.     There are eight separate components that together make up the total
  673.     HYPERGEO display, and each can be assigned a different color:
  674.  
  675.         *   Primary background
  676.  
  677.             This is the background color which covers the entire screen
  678.             (including the optional menu area) before any graphics are
  679.             drawn.  It may be any color, but a dark shade such as black or
  680.             the default dark gray is recommended for visibility.  This is
  681.             especially so when using the stereoscopic (anaglyph) display
  682.             mode, which requires a dark background to produce a good 3-D
  683.             effect.  (Black is probably the most vivid in this respect, but
  684.             dark gray is a bit easier on the eyes for extended viewing.)
  685.  
  686.             Default: dark gray
  687.  
  688.  
  689.         *   Primary foreground
  690.  
  691.             This is the color used to draw the actual edge lines of the
  692.             geometrical object as it is projected onto the computer's
  693.             display screen.  This color is also used for the transient data
  694.             values displayed in the menu area.  Naturally, the primary
  695.             foreground color should give a good contrast with the primary
  696.             background color.
  697.  
  698.             Default: white
  699.  
  700.  
  701.         HYPERGEO    Version 1.1                             Page 3-5
  702.  
  703.  
  704.  
  705.         *   Menu
  706.  
  707.             This color is used for drawing the outlines and fixed labels of
  708.             the data items and the mouse control pad section in the menu area
  709.             of the HYPERGEO program.  It is also used for the display of the
  710.             name of the geometry definition file which the user may select
  711.             to have appear in the upper, left corner of the primary graphics
  712.             area.
  713.  
  714.             Default: yellow
  715.  
  716.  
  717.         *   Geometry axis vectors
  718.  
  719.             As the user rotates the geometrical object in hyperspace, the
  720.             HYPERGEO program keeps track of the orientation of each of the
  721.             axes of the object's original coordinate system.  A projection
  722.             onto 3-space of the unit vector drawn from the origin along each
  723.             axis may optionally be displayed as part of the primary geometry
  724.             graphics.  This assists in visualizing the displacement of the
  725.             original orientation of the object in all the dimensions of
  726.             hyperspace.
  727.  
  728.             Default: cyan
  729.  
  730.  
  731.         *   Message window background
  732.  
  733.             This is the background color for all prompting and message
  734.             windows.
  735.  
  736.             Default: brown
  737.  
  738.  
  739.         *   Message window text
  740.  
  741.             This is the text color for all prompting and message windows.
  742.  
  743.             Default: white
  744.  
  745.  
  746.         *   Help window background
  747.  
  748.             This is the background color used in the on-line help window.
  749.  
  750.             Default: light gray
  751.  
  752.  
  753.         HYPERGEO    Version 1.1                             Page 3-6
  754.  
  755.  
  756.  
  757.         *   Help window text
  758.  
  759.             This is the color used for the text in the on-line help window.
  760.  
  761.             Default: black
  762.  
  763.  
  764.     Two other colors are used in the HYPERGEO primary graphics, the red and
  765.     blue used by the stereoscopic anaglyph display.  However, these colors
  766.     are fixed by the requirements of the "3-D" viewing glasses and are not
  767.     modifiable by the user.
  768.  
  769.     Color is also used in the surface rendering of the solid display mode,
  770.     which may be used with images produced by 4-D intersections, but its use
  771.     and configurability are complicated by the differing capabilities of EGA
  772.     and VGA display devices.  For EGA systems, the colors used for solid
  773.     surface rendering are fixed by the program and are not modifiable by the
  774.     user; these colors give an acceptable gradation of shades from light to
  775.     dark and are not colors available in the sixteen standard EGA colors.
  776.  
  777.     For VGA, the program takes full advantage of the enhanced color
  778.     capabilities of the display device, in particular its ability to
  779.     generate over 256,000 discrete shades.  HYPERGEO uses eight variations -
  780.     ranging from very light to very dark - of a single VGA color to produce
  781.     the consistent shadings necessary for realistic solid surface rendering.
  782.     The user can specify the base color (in terms of a VGA red/green/blue
  783.     color definition) from which HYPERGEO will generate the eight graduated
  784.     shadings.
  785.  
  786.     For either EGA or VGA, the user may select not to use color for solid
  787.     surface rendering, but to instead use variable pattern fill, which just
  788.     uses the primary foreground color.  Variable pattern fill is always used
  789.     on monochrome systems.
  790.  
  791.  
  792.     3.3  Geometry Manipulations
  793.  
  794.     Central to the operation of the HYPERGEO program is the ability to
  795.     interact with the geometry as it is being displayed and to have the
  796.     picture on the screen respond to the user's directions.  It is just this
  797.     ability to manually manipulate the hyperobject in all four dimensions of
  798.     hyperspace that creates a sense of "hands-on" control and establishes an
  799.     intuitive feel for the extradimensional shape of the hyperobject.
  800.  
  801.     In light of the two-stage process required to capture an image of a
  802.     four-dimensional geometrical object on a two-dimensional computer
  803.     display screen (first, 4-D to 3-D reduction, and second, 3-D to 2-D
  804.     projection), HYPERGEO provides interactive functions to manipulate the
  805.     geometry both in its original hyperspace configuration (in 4-space) and
  806.     in its reduced three-dimensional representation (in 3-space).  In
  807.  
  808.  
  809.         HYPERGEO    Version 1.1                             Page 3-7
  810.  
  811.  
  812.     addition, the program allows the user to control a number of parameters
  813.     that determine how the final 2-D picture is generated.
  814.  
  815.     A word or two is needed here on the subject of coordinate systems.  The
  816.     HYPERGEO program uses the letters X, Y, Z, and W to label the four
  817.     coordinates in hyperspace.  Wherever ordering is significant (as, for
  818.     example, in the specification of coordinates within a geometry
  819.     definition file), the order is (X,Y,Z,W).  As is conventional with
  820.     computer graphics, three-dimensional coordinate systems are
  821.     "left-handed"; thus, the positive Z-axis points away from the viewer and
  822.     into the screen.
  823.  
  824.  
  825.     3.3.1  Rotations
  826.  
  827.     The primary method of examining an object is to turn it about to view it
  828.     from many different angles.  In this manner, it becomes possible to
  829.     discover the overall nature of something which - for whatever reason -
  830.     is not immediately accessible in its entirety to our perceptions.  In
  831.     the HYPERGEO program, rotations in all possible directions are available
  832.     through interactive commands, and it is possible to position the
  833.     geometry in whatever orientation is desired.
  834.  
  835.     Rotations can be performed either on the 4-D geometry before it is
  836.     reduced to a 3-D image, or on the 3-D geometry of the reduced image
  837.     itself.  The effect of the two classes of rotation is different, not
  838.     only because of how they are handled by the HYPERGEO program, but also
  839.     because of fundamental differences between the structure of 3-space and
  840.     that of 4-space.
  841.  
  842.     In our familiar 3-space, rotations are performed about an "axis" which
  843.     is a straight line in space.  The rotation leaves all points on the axis
  844.     unchanged while all other points in 3-space move in circles that are
  845.     centered on the axis and that lie in a plane perpendicular to the axis.
  846.     However, in 4-space, there are an infinite number of lines that pass
  847.     through a given point on a plane and that are perpendicular to the
  848.     plane.  Thus when a hyperobject is rotated so that the points in a
  849.     particular plane move in circles about a fixed point on the plane, it is
  850.     not correct to say that the rotation takes place around an axis.  It is
  851.     most meaningful to our three-dimensional minds to think of 4-D rotations
  852.     as being "on" or "of" a particular plane rather than being "around"
  853.     anything.  (Actually, rotations in hyperspace take place around a plane
  854.     in the sense that for any given direction of hyperspatial rotation there
  855.     is a plane on which no points move, namely, the plane determined by any
  856.     two distinct lines perpendicular to the rotating plane and passing
  857.     through the rotational centerpoint on it.  This is virtually impossible
  858.     to picture for our 3-D brains, so it is simpler to refer to such
  859.     rotations in terms of the plane which is being rotated.)
  860.  
  861.     Any particular spatial orientation can be reached by performing an
  862.     appropriate sequence of rotations of the planes determined by pair-wise
  863.  
  864.  
  865.         HYPERGEO    Version 1.1                             Page 3-8
  866.  
  867.  
  868.     combinations of the space's coordinate lines.  In our 3-space there are
  869.     three such planes: the XY-plane, the XZ-plane, and the YZ-plane.  In
  870.     hyperspace, which has four orthogonal coordinate axes, there are six
  871.     planes that form the basis for all rotations: XY, XZ, XW, YZ, YW, and
  872.     ZW.  (In 3-space the rotations are normally referred to by the name of
  873.     the axis around which the rotation occurs rather than the plane of the
  874.     rotation.)  HYPERGEO has interactive commands for performing rotations
  875.     of all nine planes.  For all HYPERGEO rotations, the coordinate system's
  876.     origin is always the centerpoint; thus the origin is never moved by any
  877.     rotation.  (Note: the configuration file accepts a parameter for
  878.     repositioning the origin within the original geometry; this in turn has
  879.     the effect of repositioning the center of all rotations to any desired
  880.     point in hyperspace.)
  881.  
  882.     All rotations in HYPERGEO are in incremental steps of the current Turn
  883.     Angle.  The value of the Turn Angle can be set by the user in the
  884.     configuration file, and it can also be modified interactively at any
  885.     time.  Its current setting in degrees is displayed in the menu area.
  886.     The Turn Angle can be set to a large number of degrees (say, 30 or 45)
  887.     for rapid rotations of the object, and then reduced to a smaller value
  888.     for fine positioning.  Interactive commands exist for rotating the
  889.     object one incremental step, through either a positive or negative Turn
  890.     Angle, within any one of the three 3-D and six 4-D base rotational
  891.     planes.  Also, there are commands for automating any one of the possible
  892.     modes of rotation; in these automated modes HYPERGEO continues to
  893.     perform incremental rotations in the specified direction as rapidly as
  894.     the computer's processing speed will allow.
  895.  
  896.     The HYPERGEO program provides two features to assist the user in keeping
  897.     track of the orientation of the active object in hyperspace as it
  898.     undergoes various rotations.  First, there is the ability to display the
  899.     projected image of all four unit vectors emanating from the origin along
  900.     the four hyperspace coordinate axes.  This provides good visual feedback
  901.     of how the object is turning in hyperspace.  Second, the menu area
  902.     contains data fields that display the angular displacement of each
  903.     coordinate axis from its initial, unrotated position.  These
  904.     displacement angles can vary from 0 degrees (when the axis is coincident
  905.     with its initial alignment) to 180 degrees (indicating that it has been
  906.     rotated to point in the completely opposite direction).
  907.  
  908.     It is important to understand how four-dimensional rotations of the
  909.     hyperobject in hyperspace differ from three-dimensional rotations of the
  910.     reduced image in normal 3-space.  The critical point is that rotations
  911.     in 4-space affect the shape and structure of the reduced 3-D image and
  912.     do not necessarily produce directly equivalent rotations of that 3-D
  913.     image.  Rotations in 3-space, on the other hand, are performed after the
  914.     4-D to 3-D reduction, and they always directly rotate the 3-D image;
  915.     they never alter its shape.
  916.  
  917.     To clarify this, consider what is going on as the hyperobject is turned
  918.     in hyperspace.  If the program is using 4-D to 3-D intersection mode,
  919.  
  920.  
  921.         HYPERGEO    Version 1.1                             Page 3-9
  922.  
  923.  
  924.     the slicing hyperplane will pass through varying cross-sections of the
  925.     object, and these cross-sections will be three-dimensional polyhedra of
  926.     varying topologies.  The 3-D polyhedra themselves will not necessarily
  927.     rotate.  For the projection mode of 4-D to 3-D reduction, rotations of
  928.     the hyperobject will have the effect of altering the pattern of the
  929.     network of connected edges that is projected into 3-space, but the
  930.     motion of the network will not be any simple three-dimensional rotation.
  931.  
  932.     This distinction - that 4-D rotations alter the shape and structure of
  933.     the reduced 3-D image, while 3-D rotations rotate the image - while
  934.     generally true, is, alas, not the whole story.  Four-dimensional
  935.     rotations behave differently depending on whether or not the plane of
  936.     the rotation contains the W-axis.  In HYPERGEO, 4-D to 3-D intersections
  937.     always occur along a hyperplane that is defined by a constant W value,
  938.     and 4-D to 3-D projections always are performed onto a hyperplane that
  939.     is similarly defined by a constant W value.  For this reason, rotations
  940.     that occur on planes that do not contain the W-axis do not alter the
  941.     shape of the resulting 3-D image (because they do not modify the
  942.     W-coordinate of any points in the hyperobject). Instead, they behave
  943.     like 3-D rotations of the corresponding plane (for example, a 4-D
  944.     rotation of the XY-plane has the same effect as a 3-D rotation around
  945.     the Z-axis).  The net outcome of all this is that the 4-D rotations of
  946.     the XY-, XZ-, and YZ-planes look like simple 3-D rotations and have the
  947.     same effect on the appearance of the object's display in HYPERGEO as 3-D
  948.     rotations around the Z-, Y-, and X-axes, respectively.  The other three
  949.     4-D rotations (that is, of the XW-, YW-, and ZW-planes) do alter the 3-D
  950.     image's shape and do not resemble any simple 3-D rotations.
  951.  
  952.     One final point is needed to complete this discussion of rotations.
  953.     Although 4-D rotations of the XY-, XZ-, and YZ-planes look the same as
  954.     3-D rotations around the Z-, Y-, and X-axes, they are not treated the
  955.     same by the HYPERGEO program.  The 4-D rotations permanently alter the
  956.     orientation of the hyperobject in 4-space as that orientation is
  957.     calculated and remembered by the program; they are cumulative in the
  958.     sense that each subsequent 4-D rotation takes as its initial orientation
  959.     the one arrived at by the previous 4-D rotation.  3-D rotations, on the
  960.     other hand, do not permanently modify the four-dimensional orientation
  961.     of the hyperobject; rather, they serve as temporary repositionings of
  962.     the current 3-D image in 3-space.  For this reason, 3-D rotations are
  963.     most useful as a means of examining the shape of the current 3-D image
  964.     expressly without altering the 4-D orientation of the hyperobject that
  965.     produced that image.  A 4-D rotation performed following a sequence of
  966.     3-D rotations reverts back to the most recent 4-D orientation for its
  967.     starting position since that is the permanent orientation remembered by
  968.     HYPERGEO.  The transient 3-D rotations of the reduced image are lost and
  969.     forgotten.  (It is worth noting that although the 4-D rotations may look
  970.     like 3-D rotations, they involve the additional computational effort of
  971.     updating the permanent 4-D database and thus are noticeably slower.)
  972.  
  973.     This functional distinction between 4-D and 3-D rotations is reflected
  974.     in the way HYPERGEO reports the hyperobject's orientation.  In
  975.  
  976.  
  977.         HYPERGEO    Version 1.1                             Page 3-10
  978.  
  979.  
  980.     particular, the axis displacement angles (displayed in the menu area)
  981.     and the axis vectors (displayed in the primary graphics area) are only
  982.     affected by 4-D rotations.  During temporary, 3-D rotations, they remain
  983.     unchanged and continue to indicate the permanent 4-D orientation from
  984.     which the next 4-D rotation will proceed.
  985.  
  986.  
  987.     3.3.2  Translation of the Intersecting Hyperplane
  988.  
  989.     For the intersection mode of 4-D to 3-D reductions, the program
  990.     calculates the three-dimensional intersection of the hyperobject with a
  991.     hyperplane that is defined by the equation, w = k, that is, having a
  992.     constant W coordinate value.  (In four dimensions, a linear equation of
  993.     the four coordinate variables, Ax + By + Cz + Dw = E, defines a
  994.     hyperplane.  A hyperplane can perhaps best be envisioned as a normal
  995.     three-dimensional space that is situated in hyperspace and has zero
  996.     extent into the fourth dimension.  Our universe at any given instant can
  997.     be considered a hyperplane in four-dimensional space-time.)  The shape
  998.     of this intersection can be varied by rotating the hyperobject; this
  999.     approach has been discussed in the above section on rotations.  However,
  1000.     the intersection can also be modified by moving the hyperplane through
  1001.     hyperspace, in particular, by moving it along the W-axis by altering the
  1002.     value for 'k' in the hyperplane's equation.  The HYPERGEO program
  1003.     provides interactive commands for performing such a translation of the
  1004.     intersecting hyperplane.  (It should be emphasized that the position of
  1005.     the intersecting hyperplane only has an effect in the intersection mode
  1006.     of 4-D geometry reduction; it is irrelevant when using projection mode.)
  1007.  
  1008.     Two parameters relate to the interactive translation of the intersecting
  1009.     hyperplane: the current W value of the hyperplane's equation, and the
  1010.     amount by which that value will be incremented (or decremented) for each
  1011.     translation of the hyperplane.  Both of these values are displayed in
  1012.     the HYPERGEO menu area: the current W value of the intersecting
  1013.     hyperplane is called the W-INTER parameter, and the incremental step
  1014.     value is called DELTA-W.  An interactive command exists that increments
  1015.     the W-INTER value by the value of DELTA-W and updates the HYPERGEO
  1016.     display accordingly.  Another command serves to decrement the W value
  1017.     and thus move the intersecting hyperplane in the reverse direction.  In
  1018.     addition, both parameters may be explicitly set to any desired numeric
  1019.     value using other interactive functions.  The initial values of the
  1020.     W-INTER and DELTA-W parameters may also be set in the HYPERGEO
  1021.     configuration file.  If W-INTER is not specified by the user in the
  1022.     configuration file, its default value is calculated as the average of
  1023.     the minimum and maximum W values for the active geometrical object thus
  1024.     centering the intersecting hyperplane within the geometry.
  1025.  
  1026.     Translation of the intersecting hyperplane is most revealing when it
  1027.     proceeds from one edge or face of the hyperobject, through its entire
  1028.     body, and on to the opposite side.  A feature exists which automates
  1029.     just such a traversal of the hyperplane.  It continuously increments the
  1030.     W value until the body of the hyperobject is exited.  The direction of
  1031.  
  1032.  
  1033.         HYPERGEO    Version 1.1                             Page 3-11
  1034.  
  1035.  
  1036.     translation is then reversed and the W value is continuously decremented
  1037.     until the opposite side of the hyperobject is reached.  The direction of
  1038.     translation continues to be reversed at each extreme so that the
  1039.     hyperplane passes back and forth (in hyperspace) through the entire body
  1040.     of the hyperobject.  Performing such passes upon varying orientations of
  1041.     the hyperobject in hyperspace provides an excellent method for acquiring
  1042.     a sense of its four-dimensional shape.  (Note: the effective speed of
  1043.     the hyperplane's motion along the W-axis can be adjusted by setting the
  1044.     DELTA-W value appropriately.)
  1045.  
  1046.  
  1047.     3.3.3  View Control
  1048.  
  1049.     The final step in the processing chain that leads from the specification
  1050.     of the geometry of a four-dimensional hyperobject to the depiction of an
  1051.     image of that object on the computer screen is the generation of the
  1052.     two-dimensional graphical output.  As described above in a previous
  1053.     section of this document, the program uses a number of variations of a
  1054.     basic 3-D to 2-D linear projection to perform this step.  The user has
  1055.     access to several interactive commands with which to adjust a number of
  1056.     parameters that affect the appearance of the final display.  Paramount
  1057.     among these is the output display mode.
  1058.  
  1059.     As outlined earlier, there are five possible projection modes in which
  1060.     the final graphical output can be presented: orthographic, perspective,
  1061.     stereoscopic anaglyph, hidden-line, and solid.  The selection of a
  1062.     particular mode is one of the parameters which the user can modify; any
  1063.     one of the five modes can be invoked at any time (with some exceptions -
  1064.     see below).  A data field in the menu area shows which mode is in
  1065.     effect.  Whenever the display mode is changed, the program immediately
  1066.     redraws the representation of the current geometry using the method of
  1067.     the new mode.  The basic orientation of the hyperobject remains fixed
  1068.     across any such switch in display mode.
  1069.  
  1070.     The exceptions referred to in the preceding paragraph are as follows:
  1071.     first, the stereoscopic anaglyph mode cannot be invoked on monochrome
  1072.     systems (since the anaglyph requires red and blue); and second, the
  1073.     hidden-line and sold display modes can only be selected if the 4-D to
  1074.     3-D reduction step is using 4-D intersection, not 4-D projection (since
  1075.     4-D projections do not produce a 3-D geometry which is a solid 3-D
  1076.     polyhedron amenable to hidden-line analysis).
  1077.  
  1078.     Two numeric parameters are key in the calculations which generate the
  1079.     graphics seen on the screen.  First, the eye-to-screen distance is used
  1080.     to calculate all forms of 3-D to 2-D projection (except orthographic, in
  1081.     which the eye-to-screen distance is effectively infinite).  The
  1082.     eye-to-screen distance is shown as a data item in the menu area.  It can
  1083.     be adjusted up or down interactively by the user.  Decreasing the
  1084.     eye-to-screen distance has the effect of enhancing the perceived degree
  1085.     of perspective in the picture, and increasing the distance reduces the
  1086.     perspective.  The eye-to-screen distance can be adjusted in increments
  1087.  
  1088.  
  1089.         HYPERGEO    Version 1.1                             Page 3-12
  1090.  
  1091.  
  1092.     or decrements equal to 10% of its current value, or it can be set to an
  1093.     explicit numeric value.  The program will allow the eye-to-screen
  1094.     distance to be reduced to a very small value; however, it should never
  1095.     be made so small that the viewpoint effectively enters the object being
  1096.     displayed as this results in distorted and meaningless graphics.
  1097.  
  1098.     The second key display parameter is the scale factor which is the ratio
  1099.     of geometry units to screen inches.  This value determines the apparent
  1100.     size of the object as finally drawn on the screen.  The scale ratio is
  1101.     displayed as a data field in the menu area.  It can be adjusted up or
  1102.     down in increments of 10% of the current value, or it can be assigned an
  1103.     explicit numeric value.  When a new geometry file is read in, and if
  1104.     there is no overriding information in the configuration file, the
  1105.     program automatically sets the scale ratio so the image of the object
  1106.     fits comfortably within the primary graphics area allowing plenty of
  1107.     room for rotations.
  1108.  
  1109.     Both the eye-to-screen distance and the display scale ratio can be
  1110.     specified in the configuration file.
  1111.  
  1112.  
  1113.     3.4  Special 3-D Geometry Definition
  1114.  
  1115.     The designed function of the HYPERGEO program is the display and
  1116.     examination of the properties of four-dimensional geometrical objects.
  1117.     The program's input is normally expected to be a geometry definition
  1118.     file that specifies four coordinate values for each vertex point.  All
  1119.     of the preceding discussion has been in terms of this basic scenario.
  1120.     However, the program will also accept geometry definitions of
  1121.     three-dimensional objects and will display them with all features
  1122.     available that relate to the 3-D level of processing.  When the input
  1123.     geometry is three-dimensional, all of the program's commands that
  1124.     normally perform operations in four dimensions are deactivated; if the
  1125.     user selects a keyboard command that only operates on four-dimensional
  1126.     geometries, a message window appears with an explanation that the
  1127.     command is not applicable to the current 3-D object, and the command is
  1128.     ignored.  In special 3-D geometry mode, the section of the mouse control
  1129.     pad area that contains the selection boxes for 4-D rotations is shaded
  1130.     over with a stippled pattern, and those mouse functions cannot be
  1131.     selected.
  1132.  
  1133.     A 3-D geometry definition file has the same format as a 4-D file (see
  1134.     Appendix A) with two exceptions: first, the value of the "number of
  1135.     dimensions" field is 3 instead of 4; and second, each point has only
  1136.     three coordinates, not four.
  1137.  
  1138.     When operating upon a 3-D geometry definition, the program treats all
  1139.     3-D rotations as permanent modifications to the object's database.  The
  1140.     displayed axis angle displacements and the unit axis vectors are changed
  1141.     upon 3-D rotations.  (Recall that for 4-D geometries these items remain
  1142.     fixed during 3-D rotations and are only changed when a 4-D rotation is
  1143.     performed.)
  1144.  
  1145.  
  1146.         HYPERGEO    Version 1.1                             Page 4-1
  1147.  
  1148.  
  1149.  
  1150.  
  1151.     Section 4.    Inner Workings
  1152.  
  1153.  
  1154.     4.1  Units
  1155.  
  1156.     The coordinates of the geometry definition are considered to be in
  1157.     so-called "geometry units" which are not assumed to have any particular
  1158.     relation to any real physical unit.  Regardless of the size of the
  1159.     coordinate values, HYPERGEO will scale the display to fit within the
  1160.     visible screen area.  Some of the parameters that can be specified by
  1161.     the user are expressed in geometry units and must be entered that way.
  1162.     Other parameters, in particular, those relating to the projection of the
  1163.     final 2-D image on the computer's screen, are expressed in real-world
  1164.     units.  The program uses inches for all real-world dimensions, and the
  1165.     display scale is expressed as a ratio of geometry units to inches (the
  1166.     inches here refer to distances on the face of the computer's display
  1167.     screen).
  1168.  
  1169.     In the detailed reference material contained in the appendixes to this
  1170.     document and in all program prompts and messages it is always indicated
  1171.     what units a particular data value is expressed in.
  1172.  
  1173.  
  1174.     4.2  Verification of the Geometry Definition
  1175.  
  1176.     When HYPERGEO reads in a geometry definition file, either 4-D or 3-D, it
  1177.     analyzes the topology of the described object.  The number of vertexes,
  1178.     edges, faces, and (for 4-D) hyperfaces is calculated, and various
  1179.     aspects of the input file and its derived topology are checked for
  1180.     validity:
  1181.  
  1182.         *  The number of dimensions must be either 3 or 4.
  1183.  
  1184.         *  Every vertex must have at least as many edges connected to it as
  1185.            the number of dimensions.
  1186.  
  1187.         *  All edge connections must be consistently specified between both
  1188.            connected vertexes, that is, if vertex #1 is in the connection
  1189.            list of vertex #2, vertex #2 must be in vertex #1's list, also.
  1190.  
  1191.         *  The numbers of vertexes, edges, faces, and (for 4-D) hyperfaces
  1192.            must agree with the theoretical values as given by Euler's
  1193.            Formula or its hypergeometric version.
  1194.  
  1195.     If any of these checks fails, an error message is displayed, and when
  1196.     the message window is dismissed, the program exits back to DOS.
  1197.  
  1198.  
  1199.         HYPERGEO    Version 1.1                             Page 4-2
  1200.  
  1201.  
  1202.  
  1203.     4.3  Calculating 4-D to 3-D Projections
  1204.  
  1205.     To project the original 4-D geometry onto 3-space, an imaginary
  1206.     viewscreen (which is a three-dimensional hyperplane) and an imaginary
  1207.     viewpoint must be positioned in hyperspace.  The HYPERGEO program uses
  1208.     the so-called "radius" of the hyperobject to determine where the
  1209.     viewscreen and viewpoint are located.  The radius of the hyperobject is
  1210.     the maximum four-dimensional distance from the origin of all of the
  1211.     object's vertex points.  The viewscreen is positioned at a distance
  1212.     equal to the hyperobject's radius along the negative W-axis and normal
  1213.     (or "hypernormal") to that axis.  The viewpoint is located at a distance
  1214.     equal to 1.5 times the radius along the negative W-axis.
  1215.  
  1216.     This arrangement produces properly sized images with a reasonable
  1217.     measure of 4-D "hyperperspective" if the configuration of vertex points
  1218.     in the geometry definition is more or less symmetrical in hyperspace
  1219.     about the origin.  Ideally, the geometry specification should be
  1220.     perfectly symmetrical, with all vertex points lying on the surface of a
  1221.     hypersphere centered on the origin.  This is possible with the regular
  1222.     four-dimensional "polytopes".  (A polytope is the extra-dimensional
  1223.     equivalent of a 3-D polyhedron; a regular four-dimensional polytope has
  1224.     hyperfaces that are all identical polyhedra and that all adjoin one
  1225.     another across identical polygonal faces at identical angles.)
  1226.  
  1227.  
  1228.         HYPERGEO    Version 1.1                             Page 5-1
  1229.  
  1230.  
  1231.  
  1232.  
  1233.     Section 5.    Restrictions and Limitations
  1234.  
  1235.  
  1236.     5.1  Geometry Definition File
  1237.  
  1238.     The database maintained by the HYPERGEO program is dynamically allocated
  1239.     and expands to fit the size of the geometry being handled so there are
  1240.     no precise and absolute capacity limits on how big and complicated an
  1241.     object may be.  The ultimate barrier is the 640K limit of available
  1242.     memory under DOS.  Although I have not done the actual experiment, my
  1243.     guess is that the two largest regular four-dimensional polytopes, with
  1244.     120 and 600 hyperfaces respectively (and as many as 1200 edges and
  1245.     faces), would far overwhelm HYPERGEO and DOS with their memory
  1246.     allocation requirements.  (In any event, if, through some miracle, those
  1247.     geometries could be made to fit in memory, the computations involved in
  1248.     their topological analysis and 3-D image generation would be so
  1249.     prolonged as to reduce the program's responsiveness to a state that
  1250.     could only be described as "glacier-like".)
  1251.  
  1252.     For more reasonably sized geometries, the most important restriction is
  1253.     that all 4-D hyperobjects must be "simple" and externally convex.
  1254.     (Simple means the object must be solid without any holes passing through
  1255.     it.)  For 3-D geometries, the requirement that the object be externally
  1256.     convex is removed, but it must still be a simple polyhedron, and all its
  1257.     faces must be simple polygons without internal edges.
  1258.  
  1259.     As mentioned above, HYPERGEO performs some checking on the topological
  1260.     correctness of the input geometry.  However, to be truthful, this
  1261.     checking is not very comprehensive; it can certainly fail to detect some
  1262.     errors in the input, and when it does find errors, the messages issued
  1263.     are not as helpful as could be wished in pinpointing the problem.  I am
  1264.     sure that it would be possible to get the program to misbehave quite
  1265.     seriously, including hanging or crashing, by feeding it pernicious input
  1266.     data.  Therefore, until a future version of the program possesses
  1267.     improvements in this regard, the user must take some pains to insure
  1268.     that all new geometry definition files are created carefully and
  1269.     accurately.  If the program crashes upon startup, consider that to be a
  1270.     very loud, broadband error message, and check the geometry file closely.
  1271.     (However, HYPERGEO is not totally deficient in this regard, and it will
  1272.     issue error messages when certain problems are detected.  A geometry
  1273.     definition file with only a handful of conventional errors will be
  1274.     handled adequately.)
  1275.  
  1276.  
  1277.         HYPERGEO    Version 1.1                             Page 5-2
  1278.  
  1279.  
  1280.  
  1281.     5.2  Mathematical Precision
  1282.  
  1283.     All calculations in HYPERGEO are performed using double precision
  1284.     floating-point arithmetic.  The double precision word length is 64 bits
  1285.     which provides about fifteen decimal digits of accuracy.  Any
  1286.     floating-point values given to the program (such as coordinates in the
  1287.     geometry definition file or scale ratio in the configuration file) may
  1288.     usefully contain up to fifteen digits.
  1289.  
  1290.  
  1291.         HYPERGEO    Version 1.1                             Page 6-1
  1292.  
  1293.  
  1294.  
  1295.  
  1296.     Section 6.    Supplied Geometry Definition Files
  1297.  
  1298.  
  1299.     The HYPERGEO program comes with several "ready-to-run" geometry
  1300.     definition files, including both 4-D and 3-D objects.  These files
  1301.     include four of the six regular four-dimensional polytopes and all five
  1302.     of the three-dimensional regular polyhedra.  (As indicated above, the
  1303.     remaining two regular 4-D polytopes are almost certainly too big and
  1304.     complex to fit in HYPERGEO under DOS; they also are too far beyond my
  1305.     powers of hypergeometric comprehension to capture in a HYPERGEO input
  1306.     file.)
  1307.  
  1308.     All of the supplied geometry definition files have the file extension
  1309.     .GEO, and the root portion of the file name corresponds to the name of
  1310.     the geometric object contained in the file (with some abbreviations as
  1311.     required by DOS file name length limits).  The regular four-dimensional
  1312.     polytopes are in the files:
  1313.  
  1314.         File Name       Vertexes    Edges       Faces       Hyperfaces
  1315.        ------------     --------    -----       -----       ----------
  1316.  
  1317.           5CELL.GEO         5          10          10           5
  1318.  
  1319.        HYPRCUBE.GEO        16          32          24           8
  1320.  
  1321.          16CELL.GEO         8          24          32          16
  1322.  
  1323.          24CELL.GEO        24          96          96          24
  1324.  
  1325.  
  1326.     Note that the polytope names are of the form 'N-cell' where N is the
  1327.     number of hyperfaces.  Also, the hypercube, technically and to be
  1328.     consistent, could be called the 8-cell (just as the cube could be called
  1329.     a 'hexahedron' and the square a 'tetragon').  The two 4-D regular
  1330.     polytopes that aren't included here are the 120-cell and the 600-cell.
  1331.     (Note: The 24-cell can be quite slow to read in and to display using
  1332.     hidden-line and solid modes.)
  1333.  
  1334.  
  1335.         HYPERGEO    Version 1.1                             Page 6-2
  1336.  
  1337.  
  1338.  
  1339.     For three dimensions, all of the regular polyhedra names except "cube"
  1340.     are of the form '<prefix>hedron' where <prefix> is the Greek numeral
  1341.     indicating the number of faces: tetrahedron, octahedron, dodecahedron,
  1342.     and icosahedron.  The HYPERGEO geometry definition file names are formed
  1343.     from just the prefix without the base 'hedron':
  1344.  
  1345.         File Name       Vertexes        Edges           Faces
  1346.        ------------     --------        -----           -----
  1347.  
  1348.           TETRA.GEO         4               6               4
  1349.  
  1350.            CUBE.GEO         8              12               6
  1351.  
  1352.            OCTA.GEO         6              12               8
  1353.  
  1354.          DODECA.GEO        20              30              12
  1355.  
  1356.           ICOSA.GEO        12              30              20
  1357.  
  1358.  
  1359.     In addition to the regular polytopes and polyhedra, the following
  1360.     geometry definition files are also included:
  1361.  
  1362.         File Name     Dimensions    Geometrical Object
  1363.        ------------   ----------    -----------------------------------
  1364.  
  1365.         BLOCKS.GEO        3         A three-dimensional cross formed by
  1366.                                     stacking cubes along each of the three
  1367.                                     coordinate dimensions.
  1368.  
  1369.         STELLA.GEO        3         The "stella octangula", an interesting
  1370.                                     polyhedron formed by merging two 3-D
  1371.                                     tetrahedra.
  1372.  
  1373.             HG.GEO        3         A shape that forms the HYPERGEO logo by
  1374.                                     presenting the outline of the letter 'H'
  1375.                                     when viewed from two of the three
  1376.                                     orthogonal directions and the outline of
  1377.                                     the letter 'G' when viewed from the
  1378.                                     third.  (Note: This geometry can be
  1379.                                     quite slow to read in, and is very slow
  1380.                                     for hidden-line and solid display modes
  1381.                                     - although the results are attractive.)
  1382.  
  1383.  
  1384.         HYPERGEO    Version 1.1                             Page 6-3
  1385.  
  1386.  
  1387.  
  1388.        HYTETRA.GEO        4         These four objects are "hyperprisms"
  1389.         HYOCTA.GEO        4         derived from the 3-D regular polyhedra
  1390.       HYDODECA.GEO        4         contained in their names.  A hyperprism
  1391.        HYICOSA.GEO        4         is formed by positioning two 3-D objects
  1392.                                     in hyperspace at a given separation
  1393.                                     along the W-axis and connecting each of
  1394.                                     the pairs of corresponding points
  1395.                                     between the two objects.  The resulting
  1396.                                     hyperobject has two hyperfaces that are
  1397.                                     the same shape as the base 3-D object
  1398.                                     plus an additional number of hyperfaces
  1399.                                     equal to the number of faces in the base
  1400.                                     3-D object.  These additional hyperfaces
  1401.                                     are 3-D prisms whose end faces are the
  1402.                                     same polygonal shape as the faces of the
  1403.                                     base 3-D object.  Thus, for example, the
  1404.                                     HYTETRA.GEO hyperobject is based on the
  1405.                                     3-D tetrahedron; it has two hyperfaces
  1406.                                     that are tetrahedra and four hyperfaces
  1407.                                     that are prisms with triangular end
  1408.                                     faces.  (Note: Technically the hypercube
  1409.                                     is itself a hyperprism  - one based on
  1410.                                     the cube - but since it is also one of
  1411.                                     the regular 4-D polytopes, it is not
  1412.                                     included in this series.)
  1413.  
  1414.  
  1415.         HYPERGEO    Version 1.1                             Page A-1
  1416.  
  1417.  
  1418.  
  1419.  
  1420.     Appendix A.    Geometry Definition File
  1421.  
  1422.  
  1423.     This appendix describes the format of the geometry definition file.
  1424.     This file is the primary input to the HYPERGEO program.  It specifies
  1425.     the topology and dimensions of the geometrical object to be displayed.
  1426.     In particular, the file contains the coordinate values for all vertex
  1427.     points of the object plus connectivity information that indicates which
  1428.     vertexes are joined by edges.
  1429.  
  1430.     The geometry definition file is an ordinary text file that can be edited
  1431.     using any available text editor.  It is read by the HYPERGEO program a
  1432.     line at a time; each line comprises one complete data record, and there
  1433.     is no way to continue data across multiple lines.  The maximum length of
  1434.     a line is 255 characters.
  1435.  
  1436.     The geometry definition file can contain notes and comments that are not
  1437.     part of the data read by the program, but serve as human-readable
  1438.     annotation.  This is indicated by preceding any such comments with the
  1439.     character '!'.  HYPERGEO ignores any '!' character plus whatever follows
  1440.     it on the same line.  If the first character on a line is a '!', the
  1441.     entire line is skipped by the program.  If the '!' character appears
  1442.     following some data on a line, that data is read by the program, but
  1443.     everything after the '!' is ignored.
  1444.  
  1445.     The geometry definition file can contain any number of blank lines,
  1446.     which are ignored.  A line which contains only comment text is
  1447.     considered by the program to be a blank line.
  1448.  
  1449.     Every geometry definition file must begin with two particular data
  1450.     lines.  The first contains a single integer value which is the number of
  1451.     dimensions of the geometric object; this number must be either 3 or 4.
  1452.     The second line contains a single integer that is the number of vertex
  1453.     points in the geometry.  Following these two lines, there must be one
  1454.     line with point data for each vertex point.
  1455.  
  1456.     Each point data line contains the coordinate and connectivity
  1457.     information for a single vertex point.  Its format is:
  1458.  
  1459.         n:  x.x y.y z.z [w.w]   p1  p2  p3 [... pN]
  1460.  
  1461.     where 'n' is the sequence number of the point data line; 'x.x', 'y.y',
  1462.     'z.z', and 'w.w' are the X, Y, Z, and W coordinates of the point; and
  1463.     'p1' through 'pN' are the sequence numbers of all other points connected
  1464.     to this point by edges.
  1465.  
  1466.     Each point's sequence number serves to identify the point within the
  1467.     file.  It is the number used in the connection lists, and it is also the
  1468.     number used to refer to the point in any error messages that may be
  1469.     issued.  All point sequence numbers are integers, and they must be in
  1470.  
  1471.  
  1472.         HYPERGEO    Version 1.1                             Page A-2
  1473.  
  1474.  
  1475.     ascending order within the file; the first point data line must have
  1476.     sequence number 1, and the last point data line must have a sequence
  1477.     number equal to the total number of vertex points in the object.
  1478.  
  1479.     The coordinate values are floating-point numbers and may contain an
  1480.     optional decimal point and fractional digits.  They may also contain a
  1481.     decimal exponent in standard scientific notation format.  The coordinate
  1482.     values may be in any units desired; the program always scales the final
  1483.     display to fit the screen.  The W coordinate must be specified for a
  1484.     four-dimensional geometry and must not be specified for a
  1485.     three-dimensional one.
  1486.  
  1487.     The list of connected points contains the sequence numbers of all points
  1488.     connected to the point described by the given data line.  Connection
  1489.     information must be symmetrical, that is, if point A is in point B's
  1490.     connection list, point B must also be in point A's connection list.  It
  1491.     is an error for a point to be in its own connection list.  Unlike the
  1492.     coordinate values, the program has no way of knowing how many
  1493.     connections should exist for each point and hence cannot directly report
  1494.     an error if there are too few or too many.  Therefore, it is incumbent
  1495.     upon the user to construct these lists with some care.
  1496.  
  1497.     Except for the ':' that must follow the sequence number, no punctuation
  1498.     is used to separate the data values, just one or more spaces.
  1499.  
  1500.     Following all point data, the geometry definition file may optionally
  1501.     contain configuration information.  If it appears, it must consist of
  1502.     statements that are identical in format to the primary configuration
  1503.     file (see Appendix B).  Configuration parameters specified in a geometry
  1504.     definition file override corresponding parameters set in the primary
  1505.     configuration file, but they remain in effect only while that geometry
  1506.     definition file is active in the HYPERGEO program.
  1507.  
  1508.     Note:  There is no formal delimiter that marks the end of the geometry
  1509.     data and the start of configuration data in a geometry definition file.
  1510.     The program expects to find a number of point data lines equal to the
  1511.     total number of vertex points as specified on the second data line of
  1512.     the file.  Any non-comment lines found in the file after that number of
  1513.     point data lines have been read are assumed to be configuration data.
  1514.     This can lead to some very long and confusing error reports if the
  1515.     number of point data lines is not correct.
  1516.  
  1517.  
  1518.         HYPERGEO    Version 1.1                             Page B-1
  1519.  
  1520.  
  1521.  
  1522.  
  1523.     Appendix B.    Configuration File
  1524.  
  1525.  
  1526.     This appendix describes the format of the HYPERGEO configuration file.
  1527.     This file allows the user to set a number of parameters that control
  1528.     various aspects of the program's performance.  The file is read once
  1529.     upon start-up of the program, and is reread each time a new geometry
  1530.     definition file is entered.
  1531.  
  1532.     In addition to the configuration file, similar configuration information
  1533.     may also be contained in any geometry definition file.  The format is
  1534.     the same in both places, but the parameter specifications in the geometry
  1535.     definition file override those in the primary configuration file;
  1536.     however, they are in effect only while that geometry file is active in
  1537.     the program (see Appendix A).
  1538.  
  1539.     A command line argument exists that allows the user to specify the name
  1540.     of the particular primary configuration file to use.  This permits
  1541.     multiple configuration files to exist and to be selected as desired for
  1542.     different executions of HYPERGEO.  If no configuration file name is
  1543.     specified via a command line argument, the program tries to open one
  1544.     called HYPERGEO.CFG.  It is not an error if this default configuration
  1545.     file cannot be opened, but it is a fatal error if a configuration file
  1546.     whose name is specified by the command line argument cannot be opened.
  1547.  
  1548.     The configuration file is an ordinary text file that can be edited using
  1549.     any available text editor.  It is read by the HYPERGEO program a line at
  1550.     a time; each line comprises one complete data record, and there is no
  1551.     way to continue data across multiple lines.  The maximum length of a
  1552.     line is 127 characters.
  1553.  
  1554.     The configuration file can contain notes and comments that are not part
  1555.     of the data read by the program, but serve as human-readable annotation.
  1556.     This is indicated by preceding any such comments with the character '!'.
  1557.     HYPERGEO ignores any '!' character plus whatever follows it on the same
  1558.     line.  If the first character on a line is a '!', the entire line is
  1559.     skipped by the program.  If the '!' character appears following some
  1560.     data on a line, that data is read by the program, but everything after
  1561.     the '!' is ignored.
  1562.  
  1563.     The configuration file can contain any number of blank lines, which are
  1564.     ignored.  A line which contains only comment text is considered by the
  1565.     program to be a blank line.
  1566.  
  1567.     Each data line in the configuration file contains a single parameter
  1568.     definition.  The format of each line is simply the key word identifying
  1569.     the parameter followed by whatever data values the particular parameter
  1570.     requires.  No punctuation should be used; all parameters and values
  1571.     should be separated by one or more spaces.
  1572.  
  1573.  
  1574.         HYPERGEO    Version 1.1                             Page B-2
  1575.  
  1576.  
  1577.     The case of letters used in the configuration file does not matter, so
  1578.     lower or upper case (or both) can be used as desired.  However, the
  1579.     program is absolutely unforgiving about spelling; all parameter key
  1580.     words must be spelled exactly as they are shown in this document - no
  1581.     abbreviations, no hyphens instead of underscores, no near misses.
  1582.  
  1583.     Most parameters take a single data value, either a number or another key
  1584.     word.  Some parameters take a sequence of several numeric values, and
  1585.     some take no value at all.  Numeric values that are inherently integral
  1586.     must be entered as pure integers.  Where floating-point values are
  1587.     appropriate, the data item may include a decimal point and fractional
  1588.     digits as well as an exponent in scientific notation.
  1589.  
  1590.     Errors encountered by the program while trying to read a configuration
  1591.     file (or configuration data in a geometry definition file) are reported
  1592.     in a message window.  All configuration file errors are fatal and
  1593.     terminate the program after the error message window is dismissed.
  1594.  
  1595.     The following is a list of all parameters that may be specified in the
  1596.     HYPERGEO configuration file or a geometry definition file:
  1597.  
  1598.  
  1599.     Parameter:  COLOR
  1600.                 COLOR_BACKGROUND
  1601.                 COLOR_VECTOR
  1602.                 COLOR_MENU
  1603.                 COLOR_MESSAGE_BACKGROUND
  1604.                 COLOR_MESSAGE_TEXT
  1605.                 COLOR_HELP_BACKGROUND
  1606.                 COLOR_HELP_TEXT
  1607.  
  1608.     Value:      A color name chosen from the sixteen standard EGA colors.
  1609.                 The possible colors are:
  1610.  
  1611.                     BLACK
  1612.                     BLUE
  1613.                     GREEN
  1614.                     CYAN
  1615.                     RED
  1616.                     MAGENTA
  1617.                     BROWN
  1618.                     LIGHTGRAY
  1619.                     DARKGRAY
  1620.                     LIGHTBLUE
  1621.                     LIGHTGREEN
  1622.                     LIGHTCYAN
  1623.                     LIGHTRED
  1624.                     LIGHTMAGENTA
  1625.                     YELLOW
  1626.                     WHITE
  1627.  
  1628.  
  1629.         HYPERGEO    Version 1.1                             Page B-3
  1630.  
  1631.  
  1632.     Use:        These eight parameters set the colors used for each of the
  1633.                 component parts of the HYPERGEO display:
  1634.  
  1635.                     COLOR - Primary geometry graphics plus the transient
  1636.                         text values in the menu area
  1637.  
  1638.                     COLOR_BACKGROUND - Screen background
  1639.  
  1640.                     COLOR_VECTOR - Unit axis vectors
  1641.  
  1642.                     COLOR_MENU - Outlines and fixed labels in menu area plus
  1643.                         the mouse control pad; also the geometry file name
  1644.  
  1645.                     COLOR_MESSAGE_BACKGROUND - Background color for all
  1646.                         message and prompting windows
  1647.  
  1648.                     COLOR_MESSAGE_TEXT - Text color for all message and
  1649.                         prompting windows
  1650.  
  1651.                     COLOR_HELP_BACKGROUND - Background color of the on-line
  1652.                         help screen
  1653.  
  1654.                     COLOR_HELP_TEXT - Text color of the on-line help screen
  1655.  
  1656.                 The screen background color should be a dark color (BLACK or
  1657.                 DARKGRAY) if the stereoscopic anaglyph mode of display is to
  1658.                 be used.
  1659.  
  1660.     Default:    COLOR                           WHITE
  1661.                 COLOR_BACKGROUND                DARKGRAY
  1662.                 COLOR_VECTOR                    CYAN
  1663.                 COLOR_MENU                      YELLOW
  1664.                 COLOR_MESSAGE_BACKGROUND        BROWN
  1665.                 COLOR_MESSAGE_TEXT              WHITE
  1666.                 COLOR_HELP_BACKGROUND           LIGHTGRAY
  1667.                 COLOR_HELP_TEXT                 BLACK
  1668.  
  1669.  
  1670.         HYPERGEO    Version 1.1                             Page B-4
  1671.  
  1672.  
  1673.  
  1674.     Parameter:  COLOR_SOLID
  1675.  
  1676.     Value:      A red/green/blue color specification in the form of three
  1677.                 integers each in the range 0 to 63.  The integers should be
  1678.                 entered without punctuation, separated by spaces.
  1679.  
  1680.     Use:        On VGA color systems, defines the colors to be used for
  1681.                 surface rendering in solid display mode.
  1682.  
  1683.                 For solid surface rendering the program uses eight shades of
  1684.                 graduated intensity based on the same color.  The shades
  1685.                 range from light to dark and are used to represent the
  1686.                 varying degrees of illumination received by the different
  1687.                 faces of the object from a theoretical light source.
  1688.  
  1689.                 The color specified by the COLOR_SOLID parameter defines the
  1690.                 lightest of the eight shades; the program creates the
  1691.                 remaining seven to be increasingly dark variations.
  1692.                 Therefore, the color specified should be fairly light, that
  1693.                 is, have relatively high values for the red, green, and blue
  1694.                 color components.
  1695.  
  1696.                 Note: This parameter is only meaningful on systems with VGA
  1697.                 color graphics.
  1698.  
  1699.     Default:    53  63  43
  1700.  
  1701.                 This defines a light, slightly grayish green.  It produces a
  1702.                 spectrum of eight shades that range through medium
  1703.                 gray-greens down to a dark, evergreen green.
  1704.  
  1705.  
  1706.     Parameter:  DELTA_W
  1707.  
  1708.     Value:      numeric value (floating-point)
  1709.  
  1710.     Use:        Specifies the incremental step amount used to modify the W
  1711.                 intersection value during execution of the HYPERGEO command
  1712.                 for translation of the intersection hyperplane (Page Up/Page
  1713.                 Down - see the section on Interactive Commands below).  This
  1714.                 value is in the units of the geometry definition.
  1715.  
  1716.                 Because this parameter is in units that pertain to a
  1717.                 particular geometry definition, it is most useful in a
  1718.                 geometry definition file; however, it may be specified in
  1719.                 the primary configuration file.
  1720.  
  1721.     Default:    0.05 times the span of the geometrical object.  The "span"
  1722.                 is the greatest extent of the object in any one of its three
  1723.                 or four dimensions.
  1724.  
  1725.  
  1726.         HYPERGEO    Version 1.1                             Page B-5
  1727.  
  1728.  
  1729.  
  1730.     Parameter:  DISPLAY_INFO
  1731.  
  1732.     Value:      One of:     OFF
  1733.                             ON
  1734.  
  1735.     Use:        Specifies whether or not the HYPERGEO information window
  1736.                 should be displayed automatically at program start up and
  1737.                 whenever a new geometry definition file is entered.
  1738.  
  1739.     Default:    ON
  1740.  
  1741.  
  1742.     Parameter:  DISPLAY_MENU
  1743.                 DISPLAY_NAME
  1744.                 DISPLAY_VECTOR
  1745.  
  1746.     Value:      One of:     OFF
  1747.                             ON
  1748.  
  1749.     Use:        Specifies whether a particular component of the HYPERGEO
  1750.                 display will be drawn.
  1751.  
  1752.                 DISPLAY_MENU controls the display of the menu area which
  1753.                 occupies the right edge of the screen.  If display of the
  1754.                 menu area is specified OFF, the entire screen is used for
  1755.                 the primary geometry graphics (in this state, the mouse
  1756.                 functions are not available).
  1757.  
  1758.                 DISPLAY_NAME controls the display of the name of the
  1759.                 geometry definition file; if ON, the name will be displayed
  1760.                 at the upper, left corner of the screen.
  1761.  
  1762.                 DISPLAY_VECTOR controls the display of the coordinate axis
  1763.                 vectors.  The axis vectors are displayed as dotted lines in
  1764.                 the primary graphics; each vector is labelled with the name
  1765.                 of its axis, X, Y, Z, or W.
  1766.  
  1767.                 Note: Regardless of the DISPLAY_VECTOR setting, the axis
  1768.                 vectors are not displayed in hidden-line or solid display
  1769.                 mode.
  1770.  
  1771.     Default:    DISPLAY_MENU            ON
  1772.                 DISPLAY_NAME            ON
  1773.                 DISPLAY_VECTOR          OFF
  1774.  
  1775.  
  1776.         HYPERGEO    Version 1.1                             Page B-6
  1777.  
  1778.  
  1779.  
  1780.     Parameter:  DISPLAY_MODE
  1781.  
  1782.     Value:      One of:     ANAGLYPH
  1783.                             HIDDEN_LINE
  1784.                             ORTHOGRAPHIC
  1785.                             PERSPECTIVE
  1786.                             SOLID
  1787.  
  1788.     Use:        Specifies the display mode used to draw the primary geometry
  1789.                 graphics.
  1790.  
  1791.                 Note: The HIDDEN_LINE and SOLID modes cannot be used with
  1792.                 4-D to 3-D projections (only intersections).  If they are
  1793.                 specified together with the PROJECTION parameter (see
  1794.                 below), a warning message will be issued, and the program
  1795.                 will revert to PERSPECTIVE mode.
  1796.  
  1797.     Default:    PERSPECTIVE
  1798.  
  1799.  
  1800.     Parameter:  EPSILON
  1801.  
  1802.     Value:      numeric value (floating-point)
  1803.  
  1804.     Use:        Specifies a small value to be used as an effective zero in
  1805.                 all floating-point comparisons required by the program's
  1806.                 calculations.
  1807.  
  1808.                 This value is unitless; all calculations are performed
  1809.                 internally on normalized coordinates.
  1810.  
  1811.     Default:    1.0E-8
  1812.  
  1813.                 Note: The performance of some of the algorithms used in
  1814.                 hidden-line and solid surface displays is very sensitive to
  1815.                 this value.  The default was set after much experimentation
  1816.                 and appears to provide reliable behavior almost all of the
  1817.                 time.  The user fiddles with this value at his own risk.
  1818.  
  1819.  
  1820.         HYPERGEO    Version 1.1                             Page B-7
  1821.  
  1822.  
  1823.  
  1824.     Parameter:  EYE_DISTANCE
  1825.  
  1826.     Value:      numeric value (floating-point)
  1827.  
  1828.     Use:        Specifies the viewing distance, that is, the distance
  1829.                 between the eye and the display screen.  This value is in
  1830.                 inches.  It determines the degree of perceived perspective
  1831.                 in the various display modes.  For greatest realism, it
  1832.                 should be set to accurately reflect the true eye-to-screen
  1833.                 distance for the user's normal viewing position.
  1834.  
  1835.                 Decreasing the EYE_DISTANCE enhances the perspective effect,
  1836.                 which can be useful.  However, the EYE_DISTANCE should never
  1837.                 be reduced to the point that the viewpoint appears to enter
  1838.                 the object; this cause the graphics to become distorted and
  1839.                 meaningless.
  1840.  
  1841.     Default:    30.0
  1842.  
  1843.  
  1844.     Parameter:  EYE_SEPARATION
  1845.  
  1846.     Value:      numeric value (floating-point)
  1847.  
  1848.     Use:        Specifies the distance in inches between the viewer's eyes.
  1849.                 This value is used in the perspective calculations required
  1850.                 for the separate left- and right-eye images of the
  1851.                 stereoscopic anaglyph display.
  1852.  
  1853.     Default:    2.5
  1854.  
  1855.                 Note: This default value should be entirely acceptable for
  1856.                 all users save those with close relatives residing in remote
  1857.                 upper reaches of the Himalayas.
  1858.  
  1859.  
  1860.         HYPERGEO    Version 1.1                             Page B-8
  1861.  
  1862.  
  1863.  
  1864.     Parameter:  INTERSECTION
  1865.  
  1866.     Value:      None
  1867.  
  1868.     Use:        Causes HYPERGEO to use the intersection mode of 4-D to 3-D
  1869.                 reduction (rather than projection mode).
  1870.  
  1871.                 The INTERSECTION parameter is meaningless for
  1872.                 three-dimensional geometries.
  1873.  
  1874.                 INTERSECTION and PROJECTION (see below) are mutually
  1875.                 exclusive alternatives; if both appear in configuration file
  1876.                 data, the final one encountered will take precedence.
  1877.  
  1878.     Default:    By default HYPERGEO uses intersection mode for 4-D to 3-D
  1879.                 reductions.
  1880.  
  1881.  
  1882.     Parameter:  ORIGIN
  1883.  
  1884.     Value:      Coordinate values as a sequence of three (for 3-D) or four
  1885.                 (for 4-D) floating-point numbers.  Values should be entered
  1886.                 without delimiting punctuation, using only spaces as
  1887.                 separation.
  1888.  
  1889.     Use:        Permits translating the geometry along any (or all) of the
  1890.                 coordinate axes.  The coordinate values specified define the
  1891.                 new origin which is to be used by HYPERGEO as a centerpoint
  1892.                 for all rotations.
  1893.  
  1894.                 The ORIGIN parameter may only be used in configuration data
  1895.                 appearing within a geometry definition file; it may not be
  1896.                 used in the primary configuration file.  This is because the
  1897.                 validity of the origin coordinates - in terms of their
  1898.                 number and the units they are in - depends on the associated
  1899.                 geometry definition.  Also, the translation is applied
  1900.                 dynamically to the geometry point definitions as they are
  1901.                 read in.
  1902.  
  1903.                 The ORIGIN coordinate values are in the same units as the
  1904.                 original vertex point coordinates in the geometry definition
  1905.                 file.
  1906.  
  1907.     Default:    The origin is assumed to be (0,0,0) for 3-D and (0,0,0,0)
  1908.                 for 4-D geometries.
  1909.  
  1910.  
  1911.         HYPERGEO    Version 1.1                             Page B-9
  1912.  
  1913.  
  1914.  
  1915.     Parameter:  PROJECTION
  1916.  
  1917.     Value:      None
  1918.  
  1919.     Use:        Causes HYPERGEO to use the projection mode of 4-D to 3-D
  1920.                 reduction (rather than intersection mode).
  1921.  
  1922.                 The PROJECTION parameter is meaningless for
  1923.                 three-dimensional geometries.
  1924.  
  1925.                 PROJECTION and INTERSECTION (see above) are mutually
  1926.                 exclusive alternatives; if both appear in configuration file
  1927.                 data, the final one encountered will take precedence.
  1928.  
  1929.     Default:    By default HYPERGEO uses intersection mode for 4-D to 3-D
  1930.                 reductions.
  1931.  
  1932.  
  1933.     Parameter:  RATIO
  1934.  
  1935.     Value:      numeric value (floating-point)
  1936.  
  1937.     Use:        Specifies the scale ratio at which the display is drawn.
  1938.                 The units of this value are: geometry units per screen inch.
  1939.  
  1940.                 Because this parameter is in units that pertain to a
  1941.                 particular geometry definition, it is most useful in a
  1942.                 geometry definition file; however, it may be specified in
  1943.                 the primary configuration file.
  1944.  
  1945.     Default:    Autoscale: the display is scaled to fit comfortably within
  1946.                 the primary graphics area allowing ample room for rotations.
  1947.  
  1948.  
  1949.         HYPERGEO    Version 1.1                             Page B-10
  1950.  
  1951.  
  1952.  
  1953.     Parameter:  SCREEN_HEIGHT
  1954.                 SCREEN_WIDTH
  1955.  
  1956.     Value:      numeric value (floating-point)
  1957.  
  1958.     Use:        These two parameters specify the vertical and horizontal
  1959.                 size in inches of the actual area on the display screen in
  1960.                 which graphics are drawn.  They can best be determined for a
  1961.                 particular monitor by simply using a ruler to measure the
  1962.                 height and width of the displayed area on the face of the
  1963.                 screen.
  1964.  
  1965.                 The precise accuracy of these parameters isn't critical, but
  1966.                 they are useful to insure that the program's display scale
  1967.                 is consistent between the horizontal and vertical
  1968.                 directions (so that squares look square and not rectangular,
  1969.                 for example).
  1970.  
  1971.     Default:    SCREEN_HEIGHT                   6.0
  1972.                 SCREEN_WIDTH                    8.0
  1973.  
  1974.                 Note: These default values are about right for the typical
  1975.                 12-inch monitor.
  1976.  
  1977.  
  1978.         HYPERGEO    Version 1.1                             Page B-11
  1979.  
  1980.  
  1981.  
  1982.     Parameter:  SOLID_FILL
  1983.  
  1984.     Value:      One of:     COLOR
  1985.                             PATTERN
  1986.  
  1987.     Use:        Specifies whether to use color or pattern for surface
  1988.                 rendering in solid display mode.
  1989.  
  1990.                 Solid surface rendering that uses color displays the faces
  1991.                 of the object with varying levels of color brightness to
  1992.                 indicate how they are illuminated by a theoretical light
  1993.                 source.  If pattern is used instead, the same effect is
  1994.                 achieved by varying the density of fill (displayed with a
  1995.                 single color) used to render the object's solid faces.
  1996.  
  1997.                 If color is used, the COLOR_SOLID shades (see above) are
  1998.                 used for VGA graphics, and a set of eight pre-programmed
  1999.                 colors are used for EGA graphics.
  2000.  
  2001.                 If pattern is used, it is displayed using the color
  2002.                 specified for the primary geometry graphics.
  2003.  
  2004.                 Note: This parameter is only meaningful on systems with
  2005.                 color graphics capability (EGA or VGA); on monochrome
  2006.                 systems, PATTERN is always used.
  2007.  
  2008.     Default:    COLOR (for EGA and VGA color systems)
  2009.                 PATTERN (for monochrome systems)
  2010.  
  2011.  
  2012.     Parameter:  TURN
  2013.  
  2014.     Value:      numeric value (floating-point)
  2015.  
  2016.     Use:        Specifies the incremental step angle used by all interactive
  2017.                 rotation commands.  This value is specified in degrees.
  2018.  
  2019.     Default:    5.0
  2020.  
  2021.  
  2022.         HYPERGEO    Version 1.1                             Page B-12
  2023.  
  2024.  
  2025.  
  2026.     Parameter:  VECTOR_LENGTH
  2027.  
  2028.     Value:      numeric value (floating-point)
  2029.  
  2030.     Use:        Specifies the length in screen inches of the unit axis
  2031.                 vectors which may optionally be displayed as part of the
  2032.                 primary geometry graphics (see DISPLAY_VECTOR above).  The
  2033.                 VECTOR_LENGTH is the length an axis vector appears on the
  2034.                 screen when it is situated parallel to the XY-plane.  As the
  2035.                 object is rotated, the various axis vectors will appear to
  2036.                 rotate with it and become visibly shorter as they assume
  2037.                 different oblique orientations.
  2038.  
  2039.     Default:    1.0
  2040.  
  2041.  
  2042.     Parameter:  W_INTER
  2043.  
  2044.     Value:      One of:     CENTERED
  2045.                             numeric value (floating-point)
  2046.  
  2047.     Use:        Specifies the W-coordinate value at which a four-dimensional
  2048.                 hyperobject will be "sliced" when using 4-D to 3-D
  2049.                 intersection mode (that is, the value 'k' in the equation,
  2050.                 w = k, of the intersecting hyperplane).  If a numeric value
  2051.                 is specified, it should be in the same units as the geometry
  2052.                 definition.
  2053.  
  2054.                 When CENTERED is specified, the program automatically
  2055.                 calculates the W value to use as the average of the minimum
  2056.                 and maximum of all W coordinate values in the geometry
  2057.                 definition.  This slices the hyperobject more or less down
  2058.                 the middle.
  2059.  
  2060.                 Because this parameter is in units that pertain to a
  2061.                 particular geometry definition, it is most useful in a
  2062.                 geometry definition file; however, it may be specified in
  2063.                 the primary configuration file.
  2064.  
  2065.     Default:    CENTERED
  2066.  
  2067.  
  2068.         HYPERGEO    Version 1.1                             Page B-13
  2069.  
  2070.  
  2071.  
  2072.     The following is an example of a HYPERGEO configuration file:
  2073.  
  2074.         !   Example HYPERGEO Configuration File
  2075.         !
  2076.  
  2077.         PROJECTION          ! change from default Intersection
  2078.  
  2079.         Color_Background    Black
  2080.         Color_Vector        LightMagenta        ! very vivid
  2081.  
  2082.         COLOR_SOLID         63 53 43    ! flesh tone - produces darker
  2083.                                         ! shades that range through cocoa
  2084.                                         ! on down to dark reddish-brown
  2085.  
  2086.         display_vector      on
  2087.         vector_length       2.0         ! up from default 1 inch
  2088.  
  2089.         TURN                45          ! big angle for fast rotations
  2090.  
  2091.         DISPLAY_MODE        anaglyph    ! start up in 3-D graphics mode
  2092.  
  2093.  
  2094.         HYPERGEO    Version 1.1                             Page C-1
  2095.  
  2096.  
  2097.  
  2098.  
  2099.     Appendix C.    Command Line Arguments
  2100.  
  2101.  
  2102.     The HYPERGEO command line consists of the name of the program's
  2103.     executable file, HYPERGEO.EXE, followed optionally by additional
  2104.     parameters that are passed to the program.  This additional text is used
  2105.     to transmit control specifications to the HYPERGEO program. Parameters
  2106.     passed to a program in this manner are called command line arguments.
  2107.  
  2108.     Note: Normally the .EXE extension is not typed when the program is being
  2109.     executed since DOS knows it without being told.
  2110.  
  2111.     The HYPERGEO program accepts a number of command line arguments that can
  2112.     be used to control the behavior of the program.  Many of the command
  2113.     line arguments perform a function identical to parameters that can be
  2114.     specified in the HYPERGEO configuration file.  Whenever a command line
  2115.     argument and a configuration file parameter are in conflict, the command
  2116.     line argument takes precedence.  Furthermore, the command line
  2117.     specifications will continue to override configuration parameters that
  2118.     might be contained in any new geometry definition files that are read
  2119.     into the program interactively.
  2120.  
  2121.     Each command line argument consists of a single key letter that is
  2122.     entered on the HYPERGEO command line.  The key letters should be typed
  2123.     on the command line with a preceding hyphen, for example,
  2124.  
  2125.         HYPERGEO  -a
  2126.  
  2127.     Multiple arguments can either be strung together following a single
  2128.     hyphen or typed separately preceded by individual hyphens; thus,
  2129.  
  2130.         HYPERGEO  -aIv
  2131.  
  2132.     and
  2133.  
  2134.         HYPERGEO  -a  -I  -v
  2135.  
  2136.     are equivalent.
  2137.  
  2138.     Several arguments are flags indicating that a file name follows them
  2139.     immediately on the command line.  For these arguments, there must be no
  2140.     other argument letters following them before the file name.  There may,
  2141.     however, be one or more (or no) spaces between the flag letter and the
  2142.     file name.
  2143.  
  2144.     In all instances, the case (lower or upper) of the key letter is
  2145.     significant.  A number of arguments use the two cases of the same letter
  2146.     to mean opposite settings of a single parameter.  All arguments that use
  2147.     only one case of a letter require it to be lower-case; it will be
  2148.     rejected as an error if typed in upper-case.
  2149.  
  2150.  
  2151.         HYPERGEO    Version 1.1                             Page C-2
  2152.  
  2153.  
  2154.     (Confession: The standard notation of using a hyphen to prefix command
  2155.     line argument letters is styled after the Unix convention.  HYPERGEO
  2156.     follows this usage, and hyphens will always work.  However, to be
  2157.     candid, the arguments will also be handled correctly if preceded by a
  2158.     slash ('/', NOT a back-slash) or by nothing at all.  The only possible
  2159.     source of confusion is with file names appearing in the command line,
  2160.     but as long as all file names are always correctly and immediately
  2161.     preceded by their flag argument, the hyphen (or slash) prefix is
  2162.     superfluous and can be dispensed with.)
  2163.  
  2164.     Most arguments perform an independent function and can be used in any
  2165.     desired combination with other arguments.  However, five of the
  2166.     arguments serve to set the value of a single parameter, the 3-D graphic
  2167.     display mode, and they are mutually exclusive.  These arguments are -a,
  2168.     -h, -o, -p, and -s;  if more than one of them appears in a HYPERGEO
  2169.     command line, the one typed last takes effect.
  2170.  
  2171.     The following is a list of all command line arguments for the HYPERGEO
  2172.     program:
  2173.  
  2174.     Argument:   -a
  2175.  
  2176.     Use:        Selects the stereoscopic anaglyph mode of display.
  2177.  
  2178.                 This argument is mutually exclusive with -h, -o, -p, and -s.
  2179.  
  2180.     Default:    Perspective display mode.
  2181.  
  2182.  
  2183.     Argument:   -b
  2184.  
  2185.     Use:        Instructs HYPERGEO to create all graphics in black and white
  2186.                 even if the graphics display device supports color.  This
  2187.                 can be useful when a monochrome monitor is connected to a
  2188.                 color graphics controller card.
  2189.  
  2190.                 With black and white graphics the stereoscopic anaglyph mode
  2191.                 is unavailable, and solid surface fill always uses patterns.
  2192.  
  2193.     Default:    Color if graphics device supports it, else monochrome.
  2194.  
  2195.  
  2196.         HYPERGEO    Version 1.1                             Page C-3
  2197.  
  2198.  
  2199.  
  2200.     Argument:   -c
  2201.  
  2202.     Use:        Specifies the name of a HYPERGEO configuration file to use.
  2203.                 The argument letter must be followed on the command line by
  2204.                 the file name, with no other arguments intervening.  The
  2205.                 file name can contain full DOS path information; if there is
  2206.                 no path specified, it is assumed to exist in the current
  2207.                 directory.  If the file name specification has no extension,
  2208.                 it is assumed to have the extension .CFG.
  2209.  
  2210.                 If this argument is used and the specified file cannot be
  2211.                 opened, it is a fatal error and HYPERGEO terminates.  It is
  2212.                 not an error, however, if the default configuration file
  2213.                 cannot be opened.
  2214.  
  2215.     Default:    HYPERGEO.CFG in current directory
  2216.  
  2217.  
  2218.     Argument:   -f
  2219.  
  2220.     Use:        Specifies the name of a HYPERGEO geometry definition file to
  2221.                 use.  The argument letter must be followed on the command
  2222.                 line by the file name, with no other arguments intervening.
  2223.                 The file name can contain full DOS path information; if
  2224.                 there is no path specified, it is assumed to exist in the
  2225.                 current directory.  If the file name specification has no
  2226.                 extension, it is assumed to have the extension .GEO.
  2227.  
  2228.                 If either the geometry file specified by this argument or
  2229.                 the default geometry file cannot be opened, it is a fatal
  2230.                 error and HYPERGEO terminates.
  2231.  
  2232.     Default:    HYPRCUBE.GEO in current directory
  2233.  
  2234.                 This is the standard four-dimensional hypercube.
  2235.  
  2236.  
  2237.     Argument:   -g/-G
  2238.  
  2239.     Use:        Selects the method for reducing the 4-D geometry to a 3-D
  2240.                 image for display.  The lower-case argument, -g, selects
  2241.                 intersection mode, and the upper-case argument, -G, selects
  2242.                 projection mode.
  2243.  
  2244.     Default:    Intersection mode
  2245.  
  2246.  
  2247.         HYPERGEO    Version 1.1                             Page C-4
  2248.  
  2249.  
  2250.  
  2251.     Argument:   -h
  2252.  
  2253.     Use:        Selects the hidden-line mode of 3-D display.
  2254.  
  2255.                 This argument is mutually exclusive with -a, -o, -p, and -s.
  2256.  
  2257.                 Also, hidden-line display mode cannot be used with 4-D
  2258.                 projections.  If this argument is used together with the -G
  2259.                 argument, a warning message is issued and the program starts
  2260.                 up in perspective display mode.
  2261.  
  2262.     Default:    Perspective display mode.
  2263.  
  2264.  
  2265.     Argument:   -i/-I
  2266.  
  2267.     Use:        Specifies whether or not to display the special HYPERGEO
  2268.                 information window automatically upon program start up and
  2269.                 whenever a new geometry definition file is read.  The
  2270.                 lower-case argument, -i, selects automatic display, and the
  2271.                 upper-case argument, -I, deactivates it.
  2272.  
  2273.     Default:    The information window is automatically displayed.
  2274.  
  2275.  
  2276.     Argument:   -m/-M
  2277.  
  2278.     Use:        Specifies whether or not to display the menu area along the
  2279.                 right edge of the screen.  The menu area lists a number of
  2280.                 parameters that describe the current display and that can be
  2281.                 modified interactively within the HYPERGEO program.  It also
  2282.                 contains a mouse control pad area which allows the mouse to
  2283.                 be used for controlling rotations of the geometry.  If the
  2284.                 menu area is not displayed, the primary geometry graphics
  2285.                 use the entire screen area; the mouse may not be used
  2286.                 without the display of the menu area.
  2287.  
  2288.                 The lower-case argument, -m, selects display of the menu
  2289.                 area, while the upper-case argument, -M, causes the menu not
  2290.                 to be displayed.
  2291.  
  2292.     Default:    The menu area is displayed.
  2293.  
  2294.  
  2295.         HYPERGEO    Version 1.1                             Page C-5
  2296.  
  2297.  
  2298.  
  2299.     Argument:   -n/-N
  2300.  
  2301.     Use:        Specifies whether or not to display the name of the geometry
  2302.                 definition file in the upper, left corner of the graphics
  2303.                 display.
  2304.  
  2305.                 The lower-case argument, -n, selects display of the file
  2306.                 name, while the upper-case argument, -N, causes the name not
  2307.                 to be displayed.
  2308.  
  2309.     Default:    The geometry definition file name is displayed.
  2310.  
  2311.  
  2312.     Argument:   -o
  2313.  
  2314.     Use:        Selects the orthographic mode of 3-D display.
  2315.  
  2316.                 This argument is mutually exclusive with -a, -h, -p, and -s.
  2317.  
  2318.     Default:    Perspective display mode is used.
  2319.  
  2320.  
  2321.     Argument:   -p
  2322.  
  2323.     Use:        Selects perspective display mode.
  2324.  
  2325.                 This argument is mutually exclusive with -a, -h, -o, and -s.
  2326.  
  2327.     Default:    Perspective display mode.
  2328.  
  2329.  
  2330.     Argument:   -s
  2331.  
  2332.     Use:        Selects solid display mode.
  2333.  
  2334.                 This argument is mutually exclusive with -a, -h, -o, and -p.
  2335.  
  2336.                 Also, solid display mode cannot be used with 4-D
  2337.                 projections.  If this argument is used together with the -G
  2338.                 argument, a warning message is issued and the program starts
  2339.                 up in perspective display mode.
  2340.  
  2341.     Default:    Perspective display mode.
  2342.  
  2343.  
  2344.         HYPERGEO    Version 1.1                             Page C-6
  2345.  
  2346.  
  2347.  
  2348.     Argument:   -v/-V
  2349.  
  2350.     Use:        Specifies whether or not to display the unit axis vectors
  2351.                 along with the primary geometry graphics.
  2352.  
  2353.                 The lower-case argument, -v, selects display of the axis
  2354.                 vectors, while the upper-case argument, -V, causes the axis
  2355.                 vectors not to be displayed.
  2356.  
  2357.                 Note: Regardless of the setting of this option, the axis
  2358.                 vectors are never displayed in hidden-line or solid display
  2359.                 mode.
  2360.  
  2361.     Default:    The unit axis vectors are not displayed.
  2362.  
  2363.  
  2364.     Argument:   -?
  2365.  
  2366.     Use:        Prints to the screen a description of the appropriate syntax
  2367.                 and usage of these command line arguments and terminates the
  2368.                 HYPERGEO program.
  2369.  
  2370.     Default:    No syntax description is printed.
  2371.  
  2372.  
  2373.  
  2374.     The following is an example of a HYPERGEO command line:
  2375.  
  2376.         HYPERGEO  -f cube  -cc:\configs\special.dat  -Gav  -I
  2377.  
  2378.     This command invokes the following command line argument functions:
  2379.  
  2380.         *   Use the geometry definition file CUBE.GEO located in the current
  2381.             directory
  2382.  
  2383.         *   Use the configuration file SPECIAL.DAT located in the directory
  2384.             C:\CONFIGS\
  2385.  
  2386.         *   Use projection mode for reducing the 4-D geometry to a 3-D image
  2387.  
  2388.         *   Use stereoscopic anaglyph display mode for the 3-D image
  2389.  
  2390.         *   Display the unit axis vectors
  2391.  
  2392.         *   Deactivate the automatic display of the HYPERGEO information
  2393.             window
  2394.  
  2395.  
  2396.         HYPERGEO    Version 1.1                             Page D-1
  2397.  
  2398.  
  2399.  
  2400.  
  2401.     Appendix D.    Interactive Commands
  2402.  
  2403.  
  2404.     When the HYPERGEO program is executed, it accepts any command line
  2405.     arguments, reads in the appropriate configuration file (if any) and
  2406.     geometry definition file, and generates the initial display of the
  2407.     geometric object.  From that point on, the program remains responsive to
  2408.     a set of interactive commands which enable the user to manipulate the
  2409.     orientation of the object and to modify the various parameters that
  2410.     control the manner in which the display is generated.  Many of these
  2411.     interactive commands affect the same parameters that can be initially
  2412.     set through the configuration file and command line arguments.
  2413.  
  2414.     All interactive commands are invoked using either the keyboard or the
  2415.     mouse.  The mouse (if the system has one) provides an alternative means
  2416.     for invoking the commands for rotation of the object; if there is no
  2417.     mouse, keyboard commands can be used to perform the same functions.
  2418.     (Also, if the menu area is not displayed, the mouse cannot be used, and
  2419.     the keyboard equivalents must be similarly resorted to in its stead.)
  2420.  
  2421.  
  2422.     D.1  Keyboard Commands and the Modifier Keys
  2423.  
  2424.     The keyboard commands consist of either a single keystroke or a single
  2425.     keystroke accompanied by the simultaneous pressing of one of the
  2426.     standard keyboard modifier keys: Shift, Ctrl, or Alt.  These modifier
  2427.     keys are only used with some of the interactive commands, and in all
  2428.     cases they have a consistent meaning:
  2429.  
  2430.         Shift   - Used with keystrokes that invoke the various rotations; it
  2431.                   causes the direction of rotation to be reversed, that is,
  2432.                   to be equivalent to a negative turn angle.
  2433.  
  2434.                   Note: For all command keystrokes that are letters, if
  2435.                   the Shift key has no special meaning for that command, the
  2436.                   command may be entered equivalently in either lower or
  2437.                   upper case.  Only three letter commands (X, Y, and Z) have
  2438.                   special Shift-modified meanings.
  2439.  
  2440.         Ctrl    - Used with keystrokes for the rotation commands plus the
  2441.                   command for translating the intersecting hyperplane along
  2442.                   the W-axis in hyperspace; causes the command action to be
  2443.                   repeated continuously as fast as the computer's processing
  2444.                   speed will allow.  This "command automation" is stopped by
  2445.                   pressing any key.
  2446.  
  2447.                   In the case of the hyperplane translation command, the
  2448.                   automated motion is automatically reversed in direction
  2449.                   each time the intersecting hyperplane reaches an extreme
  2450.  
  2451.  
  2452.         HYPERGEO    Version 1.1                             Page D-2
  2453.  
  2454.  
  2455.                   of the hyperobject.  This causes the hyperplane to move
  2456.                   continuously back and forth through the entire body of the
  2457.                   hyperobject.
  2458.  
  2459.         Alt     - Used with keystrokes for the rotation commands; has the
  2460.                   same "command automation" effect as the Ctrl modifier
  2461.                   except the rotation is in the reverse direction.  The
  2462.                   continuous, automated rotation is stopped by pressing any
  2463.                   key.
  2464.  
  2465.  
  2466.     D.2  Mouse Selected Interactive Commands
  2467.  
  2468.     When the mouse is used to invoke a rotation command, no special
  2469.     modifiers are necessary since the action of the mouse buttons provides
  2470.     the equivalent control.  A rotation command can be invoked with the
  2471.     mouse (whenever the HYPERGEO menu area is displayed) by moving the mouse
  2472.     so the cursor is over the selection box labeled with the coordinate
  2473.     letters indicating the desired axis or plane of rotation; this will
  2474.     highlight the selection box.  To begin the rotation, press the left or
  2475.     right mouse button; the right mouse button causes a rotation in the
  2476.     positive direction, and the left mouse button rotates the object in the
  2477.     negative direction.  The rotation will continue as long as the mouse
  2478.     button remains pressed.  A single incremental rotation can be achieved
  2479.     by quickly clicking and releasing the mouse button.
  2480.  
  2481.     There are nine rotation command selection boxes in the HYPERGEO menu
  2482.     area, divided into two sections: 3-D axial rotations, and 4-D planar
  2483.     rotations.  All nine are available for 4-D geometries, but only the
  2484.     three 3-D rotations can be selected when the input geometry is
  2485.     three-dimensional.  The 4-D rotation selection boxes are labeled with
  2486.     the letters of the two coordinates specifying the plane of the rotation;
  2487.     thus, selecting the box labeled "XY" initiates a rotation in hyperspace
  2488.     of the XY-plane.  The 3-D rotation selection boxes are labeled with the
  2489.     single letter of the axis around which the rotation occurs: X, Y, or Z.
  2490.  
  2491.     If your system has no mouse or if the menu area isn't displayed (or if
  2492.     you simply prefer to use the keyboard), there is an equivalent keyboard
  2493.     command for each of the nine mouse rotations:
  2494.  
  2495.             Keystroke       Mouse Selection Box Label
  2496.             ---------       -------------------------
  2497.                 X                      X
  2498.                 Y                      Y
  2499.                 Z                      Z
  2500.                F1                     YZ
  2501.                F2                     XW
  2502.                F3                     XZ
  2503.                F4                     YW
  2504.                F5                     XY
  2505.                F6                     ZW
  2506.  
  2507.  
  2508.         HYPERGEO    Version 1.1                             Page D-3
  2509.  
  2510.  
  2511.     The keystrokes F1, F3, and F5 correspond to the YZ, XZ, and XY 4-D
  2512.     planar rotations.  Note that these are the three rotations that occupy
  2513.     the top row of the six 4-D rotation selection boxes and that they are
  2514.     the 4-D rotations that don't involve the W coordinate.  These three
  2515.     rotations produce the same visual effect in the geometry display as the
  2516.     three 3-D rotations whose selection boxes are directly above them in the
  2517.     menu area: X, Y, and Z.
  2518.  
  2519.     The keystrokes F2, F4, and F6 correspond to the three 4-D rotations that
  2520.     do involve the W coordinate: the XW, YW, and ZW planar rotations.  These
  2521.     are the 4-D rotations that occupy the bottom row of selection boxes
  2522.     within the menu area.  They do not correspond in effect to any of the
  2523.     3-D rotations.
  2524.  
  2525.  
  2526.     D.3  Interactive Parameter Specification
  2527.  
  2528.     Some of the interactive commands prompt for the input of a value to be
  2529.     assigned to a program parameter.  This value is generally either a
  2530.     numeric quantity, a file name, or a particular key word.  The input is
  2531.     requested from the user via a prompting window which pops up in the
  2532.     primary graphics area when the command is executed.  The prompting
  2533.     window contains an entry line in which the user's typed response
  2534.     is echoed.  After typing in the appropriate value, the user should
  2535.     indicate that the entry is complete and correct by pressing <Enter>;
  2536.     this will cause the command to accept the typed in value for the given
  2537.     parameter.  A prompting window may be cancelled at any time by pressing
  2538.     <Esc>; this aborts the command that caused the prompting window to
  2539.     appear.
  2540.  
  2541.     Prompts that accept character input - either key words or file names -
  2542.     are case insensitive; upper or lower case may be used as desired.
  2543.     Numeric values may be either integers or floating-point numbers
  2544.     depending upon the context of the command.  If a floating-point number
  2545.     is appropriate, it may be entered with an optional decimal point and
  2546.     fractional digits and may include an optional decimal exponent in
  2547.     scientific notation.
  2548.  
  2549.     If the user's entry in a prompting window is invalid, an error message
  2550.     window will appear.  Like all HYPERGEO message windows, it can be
  2551.     dismissed by pressing any key.  All errors resulting from incorrect
  2552.     input to interactive parameter prompts are non-fatal; the program will
  2553.     continue running, ready for the next interactive command, once the
  2554.     message window is dismissed.
  2555.  
  2556.  
  2557.         HYPERGEO    Version 1.1                             Page D-4
  2558.  
  2559.  
  2560.  
  2561.     D.4  HYPERGEO Interactive Keyboard Commands
  2562.  
  2563.     The following is a list of all HYPERGEO interactive commands that can be
  2564.     entered from the keyboard while the program is displaying an active
  2565.     geometry:
  2566.  
  2567.  
  2568.     Keystroke:  ?
  2569.  
  2570.     Use:        Displays the on-line help screen.  This screen contains a
  2571.                 brief description of the interactive commands available
  2572.                 within the HYPERGEO program (that is, the contents of this
  2573.                 Appendix).
  2574.  
  2575.                 The on-line help screen can be dismissed by pressing any
  2576.                 key.  This returns the program to the graphics state it was
  2577.                 in prior to the '?' command.
  2578.  
  2579.  
  2580.     Keystroke:  A
  2581.  
  2582.     Use:        Selects the stereoscopic anaglyph mode of display.
  2583.  
  2584.                 If the program is operating with monochrome graphics, the
  2585.                 stereoscopic anaglyph display cannot be used; a message
  2586.                 window will appear indicating this, and the current display
  2587.                 mode will not be changed.
  2588.  
  2589.  
  2590.         HYPERGEO    Version 1.1                             Page D-5
  2591.  
  2592.  
  2593.  
  2594.     Keystroke:  C
  2595.  
  2596.     Use:        Accepts a new color specification for drawing the primary
  2597.                 graphics.
  2598.  
  2599.                 In most cases, this will be the single EGA color used to
  2600.                 draw the edge outlines of the geometrical image being
  2601.                 displayed.  (The primary graphics color is also used for the
  2602.                 transient data value fields within the HYPERGEO menu area.)
  2603.                 The command accepts a value which is the name of one of the
  2604.                 sixteen standard EGA colors:
  2605.  
  2606.                     BLACK
  2607.                     BLUE
  2608.                     GREEN
  2609.                     CYAN
  2610.                     RED
  2611.                     MAGENTA
  2612.                     BROWN
  2613.                     LIGHTGRAY
  2614.                     DARKGRAY
  2615.                     LIGHTBLUE
  2616.                     LIGHTGREEN
  2617.                     LIGHTCYAN
  2618.                     LIGHTRED
  2619.                     LIGHTMAGENTA
  2620.                     YELLOW
  2621.                     WHITE
  2622.  
  2623.                 However, if solid display mode is currently active and the
  2624.                 system has VGA color capability, the command will accept a
  2625.                 new specification for the eight graduated shades of color to
  2626.                 be used for solid surface rendering.  The value to be
  2627.                 entered is a red/green/blue number triple in the form of
  2628.                 three integers in the range 0 to 63.  This defines the
  2629.                 lightest of the eight shades; the program will calculate
  2630.                 seven additional, darker shades from this to create the full
  2631.                 range required for realistic surface rendering.
  2632.  
  2633.  
  2634.     Keystroke:  D
  2635.  
  2636.     Use:        Accepts a new delta value that will be used to increment (or
  2637.                 decrement) the W-value of the intersecting hyperplane.  This
  2638.                 delta value is used by the interactive command which
  2639.                 performs a translation of the intersecting hyperplane on
  2640.                 geometries being displayed via the 4-D intersection mode
  2641.                 (see Page Up/Page Down below).
  2642.  
  2643.                 The value entered is a positive floating-point number.  It
  2644.                 is in the units of the currently active geometry.
  2645.  
  2646.  
  2647.         HYPERGEO    Version 1.1                             Page D-6
  2648.  
  2649.  
  2650.  
  2651.     Keystroke:  E
  2652.  
  2653.     Use:        Accepts a new value for the eye-to-screen distance.  This
  2654.                 parameter is used in the generation of all 3-D to 2-D screen
  2655.                 projections.  Decreasing the eye-to-screen distance enhances
  2656.                 the amount of apparent perspective in the display.  For
  2657.                 greatest realism, the eye-to-screen distance should be set
  2658.                 to correspond to the true distance between the viewer's eyes
  2659.                 and the screen.
  2660.  
  2661.                 It is possible to set the eye-to-screen distance to any
  2662.                 arbitrarily small positive value.  However, it should never
  2663.                 be made so small that the viewpoint appears to enter the
  2664.                 object being displayed.  This will result in distorted and
  2665.                 meaningless graphics.
  2666.  
  2667.                 The value entered is a positive floating-point number.  It
  2668.                 is in inches.
  2669.  
  2670.  
  2671.     Keystroke:  F
  2672.  
  2673.     Use:        Accepts the name of a new geometry definition file.  The
  2674.                 name may include a full DOS path specification.  If no path
  2675.                 is specified, the file is assumed to be in the current
  2676.                 directory.  If no extension is specified, the extension .GEO
  2677.                 is assumed.
  2678.  
  2679.  
  2680.     Keystroke:  G
  2681.  
  2682.     Use:        Switches between the two modes of 4-D to 3-D geometry
  2683.                 reduction: intersection and projection.
  2684.  
  2685.                 Because hidden-line and solid displays cannot be used with
  2686.                 4-D to 3-D projections, if either of those two modes is in
  2687.                 effect when the program switches from 4-D intersection to
  2688.                 4-D projection, perspective display mode is automatically
  2689.                 selected.
  2690.  
  2691.                 The G command is not applicable to three-dimensional
  2692.                 geometric objects.
  2693.  
  2694.  
  2695.     Keystroke:  H
  2696.  
  2697.     Use:        Selects hidden-line display mode.
  2698.  
  2699.                 If the current geometrical object is four-dimensional and
  2700.                 the 4-D to 3-D reduction mode is projection, the hidden-line
  2701.                 display cannot be used.
  2702.  
  2703.  
  2704.         HYPERGEO    Version 1.1                             Page D-7
  2705.  
  2706.  
  2707.  
  2708.     Keystroke:  I
  2709.  
  2710.     Use:        Displays the special HYPERGEO Information Window.  This
  2711.                 window contains a summary of the current object's topology,
  2712.                 plus a number of related program parameters.  For the
  2713.                 topology, the window shows:
  2714.  
  2715.                     *   number of dimensions
  2716.                     *   number of vertex points
  2717.                     *   number of edges
  2718.                     *   number of faces
  2719.                     *   number of hyperfaces (4-D geometries only)
  2720.                     *   span (geometry units)
  2721.                     *   radius (geometry units)
  2722.  
  2723.                 The "span" of an object is calculated by finding the minimum
  2724.                 and maximum extents of the object in each of its three or
  2725.                 four dimensions; the span is the largest difference between
  2726.                 the minimum and maximum extents in a single dimension.  The
  2727.                 "radius" of an object is the greatest distance in
  2728.                 (hyper)space of any vertex point from the origin.
  2729.  
  2730.                 Additional parameters shown are:
  2731.  
  2732.                     *   screen height and width (inches)
  2733.                     *   horizontal and vertical pixels per inch
  2734.                     *   free memory (bytes)
  2735.  
  2736.                 The HYPERGEO Information Window is an ordinary message
  2737.                 window; it can be dismissed by striking any key.
  2738.  
  2739.  
  2740.     Keystroke:  M
  2741.  
  2742.     Use:        Toggles on and off the display of the HYPERGEO menu area.
  2743.  
  2744.                 The menu area must be displayed to enable the use of the
  2745.                 mouse for command selection.
  2746.  
  2747.  
  2748.     Keystroke:  N
  2749.  
  2750.     Use:        Toggles on and off the display of the name of the current
  2751.                 geometry definition file.
  2752.  
  2753.                 From time to time, interactive manipulations of the current
  2754.                 object may cause the graphics of the displayed geometry to
  2755.                 pass over the text of the geometry definition file name and
  2756.                 partially or wholly erase it.  The display of the file name
  2757.                 can be restored by toggling it off and then on again using
  2758.                 two 'N' commands in immediate succession.
  2759.  
  2760.  
  2761.         HYPERGEO    Version 1.1                             Page D-8
  2762.  
  2763.  
  2764.  
  2765.     Keystroke:  O
  2766.  
  2767.     Use:        Selects orthographic display mode.
  2768.  
  2769.  
  2770.     Keystroke:  P
  2771.  
  2772.     Use:        Selects perspective display mode.
  2773.  
  2774.  
  2775.     Keystroke:  Q
  2776.  
  2777.     Use:        Quits the HYPERGEO program and returns to DOS.
  2778.  
  2779.  
  2780.     Keystroke:  R
  2781.  
  2782.     Use:        Accepts a new value for the current display scale ratio.  A
  2783.                 smaller scale ratio increases the size of the image on the
  2784.                 screen, while a larger scale ratio decreases it.
  2785.  
  2786.                 The value entered is a positive floating-point number.  Its
  2787.                 units are geometry units per screen inch.
  2788.  
  2789.  
  2790.     Keystroke:  S
  2791.  
  2792.     Use:        Selects solid display mode.
  2793.  
  2794.                 If the current geometrical object is four-dimensional and
  2795.                 the 4-D to 3-D reduction mode is projection, the solid
  2796.                 display mode cannot be used.
  2797.  
  2798.  
  2799.     Keystroke:  T
  2800.  
  2801.     Use:        Accepts a new value for the turn angle.  The turn angle is
  2802.                 the basic incremental angle used by each of the rotation
  2803.                 commands.  A large turn angle is useful for rapid
  2804.                 manipulation of the geometrical object under study.  Smaller
  2805.                 angles can be used for fine positioning.
  2806.  
  2807.                 The value entered is a positive floating-point number.  Its
  2808.                 units are degrees.
  2809.  
  2810.  
  2811.         HYPERGEO    Version 1.1                             Page D-9
  2812.  
  2813.  
  2814.  
  2815.     Keystroke:  V
  2816.  
  2817.     Use:        Toggles on and off the display of the unit axis vectors.
  2818.  
  2819.                 Regardless of the setting of this toggle, the unit axis
  2820.                 vectors are not displayed with hidden-line or solid display
  2821.                 mode.
  2822.  
  2823.  
  2824.     Keystroke:  W
  2825.  
  2826.     Use:        Accepts a new value for the W-coordinate of the intersecting
  2827.                 hyperplane used for 4-D to 3-D intersections.  Repositioning
  2828.                 the intersecting hyperplane at various W-coordinate values
  2829.                 provides a means for examining the hypergeometrical
  2830.                 structure of the current object.
  2831.  
  2832.                 It is possible (indeed, easy) to assign a value to this
  2833.                 parameter that causes the intersecting hyperplane to lie
  2834.                 entirely outside the extents of the current object in
  2835.                 hyperspace.  This results in an empty display.  The program
  2836.                 has no feature for "finding" the object in hyperspace in
  2837.                 such cases, so it behooves the user to remember the extents
  2838.                 of the object.  (This is no problem if the original geometry
  2839.                 contains the origin point; then, setting the hyperplane's
  2840.                 W-coordinate to zero will restore the display.)
  2841.  
  2842.                 The value entered is a floating-point number.  It is in
  2843.                 geometry units.
  2844.  
  2845.                 Note: This command has no apparent effect if the program is
  2846.                 currently using the projection method of 4-D to 3-D image
  2847.                 reduction.  However, the next time intersection mode is
  2848.                 entered, the modified W coordinate value of the intersecting
  2849.                 hyperplane will be used.
  2850.  
  2851.  
  2852.         HYPERGEO    Version 1.1                             Page D-10
  2853.  
  2854.  
  2855.  
  2856.     Keystroke:  X
  2857.                 Y
  2858.                 Z
  2859.  
  2860.     Use:        Executes a three-dimensional rotation of the current 3-D
  2861.                 image about the particular axis: X, Y, or Z.  The size of
  2862.                 the rotation is determined by the current turn angle.
  2863.  
  2864.                 When the active geometry is four-dimensional, all 3-D
  2865.                 rotations are transient and operate only on the immediate
  2866.                 3-D image which has been derived from the hyperobject's
  2867.                 geometry via a 4-D to 3-D reduction using either projection
  2868.                 or intersection.  In this case, the program does not update
  2869.                 the display of the unit axis vectors or the values shown in
  2870.                 the menu's axis angle data fields during 3-D rotations.
  2871.  
  2872.                 For three-dimensional geometries, however, 3-D rotations are
  2873.                 permanent; the internal database is modified accordingly,
  2874.                 and the unit axis vectors and the displayed values for the
  2875.                 axis angles are updated with each 3-D rotation.
  2876.  
  2877.                 By themselves, the X, Y, and Z keys produce a single
  2878.                 incremental rotation in the positive direction.  This effect
  2879.                 can be altered by combining the keystroke with the
  2880.                 simultaneous pressing of one of the standard keyboard
  2881.                 modifier keys (for example, Shift-X is entered by pressing
  2882.                 and holding down the Shift key, then pressing X):
  2883.  
  2884.                     Shift - Reverses the direction of the rotation
  2885.  
  2886.                     Ctrl  - Automates continuous rotations in the positive
  2887.                             direction.  The rotations are performed as fast
  2888.                             as the system's processing speed will allow.  To
  2889.                             stop the animation, press any key.
  2890.  
  2891.                     Alt   - Automates continuous rotations in the negative
  2892.                             direction.  The rotations are performed as fast
  2893.                             as the system's processing speed will allow.  To
  2894.                             stop the animation, press any key.
  2895.  
  2896.  
  2897.         HYPERGEO    Version 1.1                             Page D-11
  2898.  
  2899.  
  2900.  
  2901.     Keystroke:  F1
  2902.                 F2
  2903.                 F3
  2904.                 F4
  2905.                 F5
  2906.                 F6
  2907.  
  2908.     Use:        Executes a four-dimensional rotation of the current
  2909.                 hyperobject's geometry in hyperspace.  The six function keys
  2910.                 F1 through F6 correspond to the six possible coordinate
  2911.                 planes in which 4-D rotation may occur:
  2912.  
  2913.                     F1  -   YZ plane
  2914.                     F2  -   XW plane
  2915.                     F3  -   XZ plane
  2916.                     F4  -   YW plane
  2917.                     F5  -   XY plane
  2918.                     F6  -   ZW plane
  2919.  
  2920.                 The size of the rotation is determined by the curent turn
  2921.                 angle.
  2922.  
  2923.                 After each 4-D rotation, the hyperobject's geometry is
  2924.                 reduced to a 3-D image using the currently active method
  2925.                 (intersection or projection), and the 3-D image is converted
  2926.                 into a 2-D display on the computer's screen using the
  2927.                 currently active display mode (orthographic, perspective,
  2928.                 stereoscopic anaglyph, hidden-line, or solid).
  2929.  
  2930.                 By themselves, the F1 through F6 keys produce a single
  2931.                 incremental rotation in the positive direction.  This effect
  2932.                 can be altered by combining the keystroke with the
  2933.                 simultaneous pressing of one of the standard keyboard
  2934.                 modifier keys (for example, Shift-F1 is entered by pressing
  2935.                 and holding down the Shift key, then pressing F1):
  2936.  
  2937.                     Shift - Reverses the direction of the rotation
  2938.  
  2939.                     Ctrl  - Automates continuous rotations in the positive
  2940.                             direction.  The rotations are performed as fast
  2941.                             as the system's processing speed will allow.  To
  2942.                             stop the animation, press any key.
  2943.  
  2944.                     Alt   - Automates continuous rotations in the negative
  2945.                             direction.  The rotations are performed as fast
  2946.                             as the system's processing speed will allow.  To
  2947.                             stop the animation, press any key.
  2948.  
  2949.  
  2950.         HYPERGEO    Version 1.1                             Page D-12
  2951.  
  2952.  
  2953.  
  2954.     Keystroke:  3
  2955.                 4
  2956.  
  2957.     Use:        Performs continuous automated random rotations.  The
  2958.                 keystroke '3' continuously executes the three 3-D rotations
  2959.                 in a randomly determined order, and '4' randomly executes
  2960.                 the six 4-D rotations.  All rotations are in a positive
  2961.                 angular direction with a size determined by the current turn
  2962.                 angle.  To stop the automation, press any key.
  2963.  
  2964.  
  2965.     Keystroke:  Home
  2966.  
  2967.     Use:        Restores the orientation of the current geometry as it
  2968.                 existed when the geometry definition file was first read in.
  2969.                 All axis angles are reset to zero degrees, and (for 4-D
  2970.                 geometries) the W coordinate of the intersecting hyperplane
  2971.                 is reset to its original value.
  2972.  
  2973.  
  2974.     Keystroke:  End
  2975.  
  2976.     Use:        Restores the current geometry to the orientation it was in
  2977.                 prior to the most recent Home command (see above).
  2978.                 Parameters reset include the axis angles and (for 4-D
  2979.                 geometries) the W coordinate value of the intersecting
  2980.                 hyperplane.
  2981.  
  2982.                 If no Home command has yet been performed on the current
  2983.                 geometry, the End command has no effect.
  2984.  
  2985.  
  2986.     Keystroke:  +
  2987.                 -
  2988.  
  2989.     Use:        Performs a "zoom" operation on the visible image.  The '+'
  2990.                 command enlarges the graphical display, and the '-' command
  2991.                 reduces it.
  2992.  
  2993.                 These commands operate by changing the display scale ratio.
  2994.                 The '+' command reduces the scale ratio by 10% of its
  2995.                 current value, and the '-' command increases it by 10%.
  2996.  
  2997.  
  2998.         HYPERGEO    Version 1.1                             Page D-13
  2999.  
  3000.  
  3001.  
  3002.     Keystroke:  Insert
  3003.                 Delete
  3004.  
  3005.     Use:        Alters the degree of perceived 3-D perspective for the
  3006.                 currently displayed image.  These commands operate by
  3007.                 modifying the eye-to-screen distance.  The Insert command
  3008.                 increases apparent perspective; it moves the viewpoint in
  3009.                 towards the object by reducing the eye-to-screen distance by
  3010.                 10% of its current value.  The Delete command decreases the
  3011.                 perspective effect; it moves the viewpoint away from the
  3012.                 object by increasing the eye-to-screen distance by 10%.
  3013.  
  3014.                 The eye-to-screen distance should not be reduced to the
  3015.                 point that the viewpoint enters the 3-D geometry of the
  3016.                 displayed image.  This will result in distorted and
  3017.                 meaningless graphics.
  3018.  
  3019.  
  3020.     Keystroke:  Page Up
  3021.                 Page Down
  3022.  
  3023.     Use:        Performs a translation of the intersecting hyperplane.  The
  3024.                 hyperplane is moved along the W-axis in hyperspace.  The
  3025.                 size of the translation is determined by the value of the
  3026.                 DELTA_W parameter.  The Page Up command increments the W
  3027.                 coordinate of the intersecting hyperplane by this delta
  3028.                 amount, and the Page Down command decrements it.
  3029.  
  3030.                 Note: This command has no apparent effect if the program is
  3031.                 currently using the projection method of 4-D to 3-D image
  3032.                 reduction.  However, the next time intersection mode is
  3033.                 entered, the modified W coordinate value of the intersecting
  3034.                 hyperplane will be used.
  3035.  
  3036.                 By themselves, the Page Up and Page Down commands perform a
  3037.                 single incremental translation of the intersecting
  3038.                 hyperplane.  When combined with the simultaneous pressing of
  3039.                 the Ctrl key, these keystrokes initiate the continuously
  3040.                 automated motion of the hyperplane through the body of the
  3041.                 current four-dimensional geometry.  (For example, to enter
  3042.                 Ctrl-Page Up, first press and hold down the Ctrl key, then
  3043.                 press Page Up.)  In automated mode, the direction of the
  3044.                 hyperplane's motion is reversed each time it reaches an
  3045.                 extreme edge of the hyperobject, that is, the point at which
  3046.                 it ceases to intersect the hyperobject in hyperspace.  Thus,
  3047.                 the hyperplane, continues to move back and forth through the
  3048.                 entire body of the hyperobject.  The automated motion is
  3049.                 stopped by pressing any key.
  3050.  
  3051.  
  3052.         HYPERGEO    Version 1.1                             Page D-14
  3053.  
  3054.  
  3055.  
  3056.     Keystroke:  Arrow Keys: Left, Right, Up, Down
  3057.  
  3058.     Use:        These keys move the position of the current graphical
  3059.                 display on the screen.
  3060.  
  3061.                 When a new geometry is read in, HYPERGEO automatically
  3062.                 centers the display within the primary graphics area.  The
  3063.                 arrow keys may be used to reposition it as required by
  3064.                 subsequent rotations or other interactive manipulations.
  3065.  
  3066.  
  3067.         HYPERGEO    Version 1.1                             Page E-1
  3068.  
  3069.  
  3070.  
  3071.  
  3072.     Appendix E.    Running HYPERGEO under Microsoft Windows
  3073.  
  3074.  
  3075.     The program file supplied with HYPERGEO (HYPERGEO.EXE) is a standard DOS
  3076.     executable; it is not a special Windows program.  However, it can be run
  3077.     under Windows using that system's ability to execute non-Windows DOS
  3078.     programs.  Two files are supplied with HYPERGEO to assist in adding the
  3079.     program to the Windows Program Manager: an icon file (HYPERGEO.ICO), and
  3080.     a Program Information File (HYPERGEO.PIF).
  3081.  
  3082.     The procedure to follow to add a new program to a particular program
  3083.     group within the Program Manager is described in the Windows User's
  3084.     Guide in the section "Adding Program Items and Documents to a Group" in
  3085.     the Program Manager chapter (page 88 for Windows 3.0).  Within the
  3086.     Program Item Properties dialog box that appears, the name of the
  3087.     HYPERGEO PIF file (including its DOS path) should be entered in the
  3088.     Command Line text box.  You should also supply the name of the icon file
  3089.     by choosing the "Change Icon..." option from the Program Item Properties
  3090.     dialog box.  Enter the icon file name (HYPERGEO.ICO) along with its full
  3091.     DOS path in the File Name text box within the Select Icon dialog box.
  3092.  
  3093.     One final step may be necessary to enable the running of HYPERGEO in
  3094.     Windows.  The supplied PIF file has an entry which specifies the
  3095.     program's start-up directory.  This initially contains the path
  3096.     specification C:\HYPERGEO.  If you have installed HYPERGEO in a
  3097.     different directory, you will have to change this entry in the PIF to
  3098.     reflect the actual directory in which the program executable
  3099.     HYPERGEO.EXE exists.  To modify a PIF you use the Windows PIF Editor.
  3100.     This is described fully in the Section "Working with PIFs and the PIF
  3101.     Editor" (page 444 for Windows 3.0) and subsequent sections in the
  3102.     chapter "More About Applications" in the Windows User's Guide.
  3103.  
  3104.     The PIF Editor also lets you specify any optional command line
  3105.     parameters you wish to pass to HYPERGEO each time it is executed.
  3106.  
  3107.     The PIF file as supplied will cause HYPERGEO to run as a full-screen DOS
  3108.     program.
  3109.  
  3110.  
  3111.         HYPERGEO    Version 1.1                             Page F-1
  3112.  
  3113.  
  3114.  
  3115.  
  3116.     Appendix F.    Registration Form
  3117.  
  3118.  
  3119.                             Stuart Esten
  3120.                             33 Banks Ave.
  3121.                             Lexington MA  02173
  3122.                             USA
  3123.  
  3124.  
  3125.                 HYPERGEO Customer Registration Form
  3126.  
  3127.  
  3128.     Name and Address:
  3129.  
  3130.  
  3131.         ____________________________________________________________
  3132.  
  3133.  
  3134.         ____________________________________________________________
  3135.  
  3136.  
  3137.         ____________________________________________________________
  3138.  
  3139.  
  3140.         ____________________________________________________________
  3141.  
  3142.  
  3143.     Diskette size:      5-1/4" ( )          3-1/2" ( )
  3144.  
  3145.  
  3146.  
  3147.     HYPERGEO -  includes latest version of program
  3148.                 and one pair of plastic 3-D glasses:
  3149.  
  3150.                        _____ copies at $20 each     =   _____________
  3151.  
  3152.  
  3153.     Additional 3-D glasses: ______ pairs at $2 each =   _____________
  3154.  
  3155.  
  3156.     Massachusetts residents add 5% state sales tax  =   _____________
  3157.  
  3158.  
  3159.     Shipment outside of U.S. and Canada add $5      =   _____________
  3160.  
  3161.  
  3162.  
  3163.                                         Total       =   _____________
  3164.  
  3165.  
  3166.  
  3167.     For domestic orders payment should be via check payable to Stuart Esten.
  3168.     Foreign orders should use an International Money Order denominated in
  3169.     dollars.  For either domestic or foreign orders cash is acceptable.
  3170.  
  3171.  
  3172.     (Please use the back of this form for any comments, suggestions, or
  3173.     criticisms you have concerning the HYPERGEO program.)
  3174.