Rotation around a vector

2k Views Asked by At

I have a simple question.

Find the matrix for the rotation of $90^\circ$ counter-clockwise around the vector $v = (1,2,2)$

My first approach here was to create $3$ vectors, $(1,0,0),(0,1,0),(0,0,1)$ and see how a $90^\circ$ rotation effected them. Then take the matrix of that times the vector in this question. However, that seems to be wrong.

Can anyone show me how to do this?

/John.

2

There are 2 best solutions below

0
On

You can get the matrix you want by applying your rotation (in some way) to the 3 basis vectors, and use those 3 basis vectors as columns of your matrix.

Now to apply your rotation to a vector:

Normalize $v$ so that it has length 1.

The rotated version of any vector $x$ is $(x\cdot v)v + x \times v$. The first term represents the part of $x$ parallel to $v$ and isn't affected by the rotation, the second term is the part perpendicular to $v$, rotated by 90 degrees.

2
On

With Rodrigues formula you have:

$R(v,\theta)=I+\sin(\theta)S(v)+(1-\cos(\theta))S^2(v)$

where $S(v)=\begin {bmatrix} 0 &-z &y \\ z & 0 &-x \\ -y & x &0 \end{bmatrix}$ and $x,y,z$ are coordinates of unit vector representing axis.

In your case $v=[1/3 \ \ \ 2/3 \ \ \ 2/3]^T$.

For angle $\pi/2$ the formula has form

$R(v,\theta)=I+ S(v)+ S^2(v)$.