Simple rotations in n-dimensions (limited to 'right angle' rotations)

907 Views Asked by At

Apologies if terminology used here isn't the best.

In 2D, a point $(a, b)$ can be rotated $90^o$ to $(b, -a), (-a, -b), (-b, a)$. So in 2D there are 4 orientations.

In 3D, a point $(a, b, c)$ can be rotated similarly about the z-axis in 4 ways. It can then be rotated $180^o$ about either the $x$ or $y$-axis and then again rotated about the $z$-axis in 4 ways. So there are 8 orientations per plane and since there are 3 planes, there's a total of 24 possible orientations.

All these rotations clearly involve some permutation of $(a, b, c, ...)$ and negation of some of the $x/y/z/...$ values.

Is there some neat/clean methodology to enumerating these orientations in $n$-dimensions? Further, is there some way to quickly determine whether a transformation cannot originate from $90^o$ rotations? For example $(a, -b)$ clearly cannot be from $90^o$ rotations from $(a, b)$.

Context: I'm writing a program in Python to return all these orientations of any given point.