How do I rotate a given point on $\mathbb{S}^n$ so that I send it to the South Pole

158 Views Asked by At

This seems pretty trivial but I'm not sure what to do. My coordinates are Cartesian, and I want to send point the $(x_1,...,x_{n-1},x_n)$ to point $(0,...,0,-1)$ so that all the other points are also rotated properly.

2

There are 2 best solutions below

6
On BEST ANSWER

A combination of two reflections with respect to hyperplanes is a rotation: such reflections are distance preserving and have determinant $-1$. Therefore a combination of two such linear transformations is distance preserving and has determinant +1, hence is an element of $SO(n)$, i.e. a rotation.

How to find two such reflections? Let $H$ be the hyperplane through the origin that has $\vec{PS}$ as its normal. Here $P=(x_1,x_2,\ldots,x_n)$ is the given point, and $S$ is the South pole. As $P$ and $S$ are both at distance one from the origin, the hyperplane $H$ bisects the line segment $PS$. Therefore a reflection w.r.t. $H$ takes $P$ to $S$ (and vice versa).

After this reflection follow it up with a reflection w.r.t. a hyperplane that passes through the origin and $S$. That reflection maps $S$ to itself, and you are done.

2
On

Let $\mathbf S$ be the south pole, let $\mathbf P$ be the point that you want sent to the south pole, and let $\mathbf C$ be the center of the sphere.

Calculate the angle $\theta$ between the vectors $\mathbf U = \mathbf P - \mathbf C$ and $\mathbf V = \mathbf S - \mathbf C$. Let $\mathbf N = \mathbf U \times \mathbf V$ (the vector cross product). What you need is a rotation around $\mathbf N$ by an angle $\theta$. If you look on this Wikipedia page, you'll find the matrix representation of this rotation. Don't forget to unitize $\mathbf N$ first.