How to Rotate a vector along another vector

1.3k Views Asked by At

I want to rotate a vector e.g $V = Ai + Bj + Ck$ along an another vector $U = xi + yj + zk$. The angle between $U$ and $V$ is $\theta$.

How can I do that and how do I know the new value of $A$, $B$, $C$ along the direction of $U$.

Thanks in advance.

Bk

2

There are 2 best solutions below

0
On BEST ANSWER

By a general approach we can proceed as follow

  1. Consider an orthogonal basis with $v_1=U$, $v_2=V-\frac{V\cdot U}{U\cdot U}U$ and $v_3=v_1\times v_2$
  2. In this basis the vector $V$ is $V_B=(|V|\cos \theta,|V|\sin \theta, 0)$
  3. Find the rotated $W_B$ by standard rotation matrix $R_B$ that is $W_B=R_BV_B$
  4. Return to the standard basis by $W=MW_B$ where $M$ is the matrix for the change of basis from the new basis to the standard basis that is $M=[v_1\quad v_2\quad v_3]$
  5. We can also obtain the expression for the rotation matrix in the standard basis indeed

$$W_B=R_BV_B\iff M^{-1}W=R_BM^{-1}V\iff W=MR_BM^{-1}V \quad R=MR_BM^{-1}$$

0
On

You can use the rotation matrix if you want to rotate a vector 'around' the direction $n$ (with $|n|=1$) by $\theta$: $$R_{kl}=\cos(\theta)\delta_{kl}+n_kn_l(1-\cos(\theta))+\sum_{m}\epsilon_{kml}n_m\sin(\theta)$$