From: hollasch@kpc.com (Steve Hollasch)
Subject: Re: Rotation in nD space
Summary: Brief answer and pointer to a bit more info.
Organization: Kubota Pacific Computer, Inc.
Date: Wed, 19 Aug 1992 16:37:10 GMT

wijkstra@fwi.uva.nl (Marcel Wijkstra (AIO)) writes:
| The question is: how do I 'rotate' an object in 4D? Or even: what is
| rotation in 4D? I proved (I think) that true rotation of a 4D object
| around one of the four principal axes is impossible. In other words:
| there exists no matrix M ... that rotates a point (xyzt) around the X
| axis over a certain angle A, such that applying MM is the same as
| rotating over 2A.  Note: such an M could exist, if you use complex
| numbers, but I doubt if that is allowed.
|
| The only thing I could come up with, is to use three matrices
| 
|       1  0  0  0              1  0  0  0              1  0  0  0
|       0  C  S  0      ,       0  S  0  C      and     0  1  0  0
|       0 -S  C  0              0  0  1  0              0  0  C  S
|       0  0  0  1              0  C  0 -S              0  0 -S  C
| 
| for rotations around the XT, XZ and XY plane. Extended to an nD space,
| this approach results in (n^2 + n)/2 different rotation (n-2 D) spaces.

    The problem lies in the fact that because we deal with three space,
we've fallen into the notion that rotations occur "around an axis".  Think
about the 2D case, where you can also rotate objects, but the "axis" of
rotation doesn't lie anywhere in the two space.  A better way to think of
it is that rotations all occur parallel to a given plane.  If you have an
"axis" of rotation in three space, then the plane of rotation is the one
perpendicular to the axis of rotation.

    As such, the rotation matrices for four space are given by the
possible "Euler" plane combination for four space.  In other words, given
basis vectors X,Y,Z and W, you can rotate parallel to the XY, XZ, XW, YZ,
YW, and ZW planes - all possible pairs of the four coordinates.

    So, the six basis rotation matrices for four space are:

    +-            -+      +-            -+      +-            -+
    |  C  S  0  0  |      |  1  0  0  0  |      |  C  0 -S  0  |
    | -S  C  0  0  |      |  0  C  S  0  |      |  0  1  0  0  |
    |  0  0  1  0  |      |  0 -S  C  0  |      |  S  0  C  0  |
    |  0  0  0  1  |      |  0  0  0  1  |      |  0  0  0  1  |
    +-            -+      +-            -+      +-            -+
        XY Plane              YZ Plane              ZX Plane


    +-            -+      +-            -+      +-            -+
    |  C  0  0  S  |      |  1  0  0  0  |      |  1  0  0  0  |
    |  0  1  0  0  |      |  0  C  0 -S  |      |  0  1  0  0  |
    |  0  0  1  0  |      |  0  0  1  0  |      |  0  0  C -S  |
    | -S  0  0  C  |      |  0  S  0  C  |      |  0  0  S  C  |
    +-            -+      +-            -+      +-            -+
        XY Plane              YZ Plane              ZX Plane

    My thesis on "Four Space Visualization of 4D Objects" is available
via anonymous FTP from swedishchef.lerc.nasa.gov, and from
wuarchive.wustl.edu  [128.252.135.4].  This goes into more detail for
writing a wireframe 4D viewer and a 4D raytracer.

______________________________________________________________________________
Steve Hollasch                                   Kubota Pacific Computer, Inc.
hollasch@kpc.com                                 Santa Clara, California
Newsgroups: comp.graphics.visualization