hiebeler@csv.rpi.edu (David Hiebeler) (09/20/87)
I have been playing around with using matrices to perform rotations on objects defined using homogeneous-coordinates. For example, using -- -- | cos(O) sin(O) 0 0 | | -sin(O) cos(O) 0 0 | | 0 0 1 0 | | 0 0 0 1 | -- -- to multiply a row-vector [ x y z 1 ] to rotate the point around the x-axis. ('O' is theta). What I am wondering is, how can I generalize this to N dimensions? I can understand the derivation of this matrix, and the ones for rotation about y- and z-axis, but I don't know how to do this for N-D, with N >= 4. Can someone either show me a general derivation for N dimensions, or, failing to do that, tell me the 4 matrices to rotate a point in 4-D about each of the 4 orthogonal axes? Any help whatsoever would be great and appreciated. -D.H. ---- David Hiebeler hiebeler@csv.rpi.edu Troy, NY "Illusions, Richard! Every bit of it illusions!"
lgy@pupthy2.PRINCETON.EDU (Larry Yaffe) (09/21/87)
In article <81@rpicsb8> hiebeler@csv.rpi.edu (David Hiebeler) writes: > > I have been playing around with using matrices to perform rotations on >objects defined using homogeneous-coordinates. For example, using > -- -- > | cos(O) sin(O) 0 0 | > | -sin(O) cos(O) 0 0 | > | 0 0 1 0 | > | 0 0 0 1 | > -- -- > to multiply a row-vector [ x y z 1 ] to rotate the point around the x-axis. >('O' is theta). > > What I am wondering is, how can I generalize this to N dimensions? I can >understand the derivation of this matrix, and the ones for rotation about >y- and z-axis, but I don't know how to do this for N-D, with N >= 4. > Can someone either show me a general derivation for N dimensions, or, >failing to do that, tell me the 4 matrices to rotate a point in 4-D about >each of the 4 orthogonal axes? > Any help whatsoever would be great and appreciated. > > -D.H. >---- >David Hiebeler hiebeler@csv.rpi.edu >Troy, NY "Illusions, Richard! Every > bit of it illusions!" To understand how to generalize rotations (actually orthogonal transformations) from 3 dimensions to N-dimensions, it is much better to think of 3 dimensional rotations as not being "around an axis", but rather as a rotations "in some plane". In 3 dimensions, these views are of course equivalent, but the latter viewpoint is what generalizes nicely. Particularly simple N-dimensional rotations are rotations in a plane containing a pair of coordinate axes. Such a transformation matrix looks like: col i col j | | v v - - | 1 | | . | row i -> | cos(T) sin(T) | | 1 | row j -> | -sin(T) cos(T) | | 1 | | . | | 1 | - - (All suppressed matrix elements are zero.) An arbitrary N-dimensional orthogonal transformation may be decomposed into a product of these primitive rotations. Note however, that unlike the situation in 3 dimensions, an arbitrary orthogonal transformation is not in general given by a single rotation in some plane. (For example, in 4 dimensions, you can perform a rotation in the x-y plane by some angle T1, and simultaneously, perform a rotation in the z-t plane by an independent angle T2.) Numerous parameterizations of the group of all N-dimensional orthogonal transformations (usually called O(N)) are available. One possibility uses a generalization of the idea of "polar coordinates". Alternatively, you can use an exponential parameterization: Any orthogonal transformation (of determinant +1) can be written as the matrix exponential of an anti-symmetric matrix. Most introductory books on group theory discuss these topics is (much) greater detail. One book I like is "Lie Groups, Lie Algebras, and Some of Their Applications" by R. Gilmore (Wiley, 1974). Look for topics like "Canonical coset parameterization of classical groups". ------------------------------------------------------------------------ Laurence G. Yaffe Department of Physics lgy@pupthy.princeton.edu Princeton University ...!princeton!pupthy!lgy PO Box 708, Princeton NJ 08544 609-452-4371 or -4400