HYPERCUBE
is divided into three major sections following the
initialization of vert
: the selection of the desired rotation
of the hypercube, the calculation of the coordinates of the rotated
hypercube and the display of the result on the monitor. If the rotating
object were three-dimensional, one could select the rotation by specifying
the orientation of the axis of rotation and the angle of the rotation about
the axis. For a rotating four-dimensional object, however, picking an axis
of rotation does not determine a rotating plane: remember that there are
two nonequivalent directions perpendicular to a given plane, On the other
hand even in four-dimensional hyperspace it remains true, as it does in
ordinary space, that a rotation can affect just two dimensions at a time.
If a three-dimensional object is rotated, two of its dimensions swing into
each other while the third dimension remains fixed. Similarly, when a
four-dimensional object is rotated, two dimensions change direction in the
space while the other two remain fixed.
There are many ways a four-dimensional object can be rotated to a new position. It turns out, however, that any position can be reached by applying a sequence of rotations limited to motions within the planes defined by the coordinate axes of the surrounding four-dimensional space. There are four coordinate axes in a four-dimensional space, numbered, say, from I to 4, and there are six ways any two of them can be combined. Hence there are six planes within a four-dimensional space determined by the coordinate axes: plane 1-2, the plane determined by axes I and 2, plane 1-3, plane 1-4, plane 2-3, plane 2-4 and plane 3-4.
For each of the six planes there is a corresponding kind of rotation, which
can be specified by a 4-by-4 square matrix of 16 numbers. The six rotation
matrixes are named rot12
, rot13
,
rot14
, rot23
, rot24
and
rot34
. The user of the program must type in the name of the
kind of matrix selected and the angle of rotation the matrix will generate.
For example, typing "rot23
" followed by "60
"
would cause a rotation of 60 degrees within the plane defined by the second
and the third axes.
[an error occurred while processing this directive]