I want to project high dimensional data points onto 2D screen coordinates, for visualization purposes. I want to be able to control the angles of projection manually (eg, with the mouse). I have succeeded to code this for $3D \rightarrow 2D$, which is commonly found in math software for 3D scatter plots. But I don't know the general formula for a rotation in $\mathbb{R}^n$, or projecting at an angle to $\mathbb{R}^2$. I guess for each extra dimension there is one more degree of freedom (ie, an angle that can be adjusted).
I failed to find a general formula for rotations in $\mathbb{R}^n$; even the 4D case is rather complicated with 6 parameters (I don't understand why it's 6 instead of 4).
Is there a simple solution to this problem?