Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

I have two vectors, $v$ and $u$. How do I rotate $u$ around the x-, y-, and z-axes (or one axis) so that it points in the same direction as $v$?

share|improve this question
No need to "rotate": divide $v$ by its norm, then multiply by the norm of $u$. –  David Mitra Feb 27 '12 at 16:57
@David: I don't understand; scaling doesn't change whether $u$ and $v$ are linearly dependent. –  Zev Chonoles Feb 27 '12 at 16:59
@ZevChonoles Maybe I misunderstood the question. I thought he ultimately wanted a vector in the direction of $v$ that had length $\Vert u\Vert$. –  David Mitra Feb 27 '12 at 17:02
But if $u$ is not initially in the same direction as $v$, scaling won't change that. –  Zev Chonoles Feb 27 '12 at 17:07
@David, to clarify, $u$ and $v$ are not initially pointing in the same direction. I'd like to rotate $u$ so that it points in the same direction as $v$, not rescale it. –  FlyWheel Feb 27 '12 at 17:08

3 Answers 3

up vote -1 down vote accepted

If $u,v\in\mathbb R^2$, Find the angle between $u$ and $v$ by $$\cos\theta=\frac{<u,v>}{|u|.|v|}$$ Now take matrix of rotation $A_\theta$ of angle $\theta$. Now take $A_\theta u$ or $A_{-\theta} u$. These will rotate $u$ to the direction of $v$. $$A_\theta= \left( \begin{array}{cc} \cos\theta &-\sin\theta \\ \sin\theta &\cos\theta \\ \end{array} \right) $$

For $u,v\in \mathbb R^3$,
Write $v= (a,b,c)$ and $u= (x,y,z)$. If all x,y,z is non zero, then we want $T$ such that $Tu = v$ , define $T$ such that $$T(e_1)= \frac{a}{x} e_1$$ $$T(e_2)=\frac{b}{y} e_2$$ $$T(e_3)= \frac{c}{z}e_3$$ Then we have $T(x,y,z)= (a,b,c)$. That is rotation matrix is matrix of $T$ that is $$\left( \begin{array}{ccc} \frac{a}{x } &0 & 0 \\ 0 &\frac{b}{y} &0 \\ 0 & 0 &\frac{c}{z} \\ \end{array} \right)$$

If some of x,y,z is zero, then case reduces to $\mathbb R^2$ keeping one axis fixed.

Example: Assume $u= (1,2,3)$ and $v= (2,-5,6)$ Then rotation matrix which take $u$ to $v$ is $\left( \begin{array}{ccc} \frac{2}{1} &0 & 0 \\ 0 &\frac{-5}{2} &0 \\ 0 & 0 &\frac{6}{3}\\ \end{array} \right)= $ $\left( \begin{array}{ccc} 2 &0 & 0 \\ 0 &\frac{-5}{2} &0 \\ 0 & 0 &2 \\ \end{array} \right)$

putting value of $a,b,c$ and $x,y,z $ you may have many more example.... If some of $x,y,z$ is what happen see and if didn't get comment it.. i will give example for that too.

share|improve this answer
How do we find the matrix for the linear transformation $T$? –  FlyWheel Feb 27 '12 at 17:25
@FlyWheel, read this article en.wikipedia.org/wiki/Transformation_matrix –  zapkm Feb 27 '12 at 17:27
@FlyWheel math.stackexchange.com/questions/92206/… This question may help you in leaning find matrix of linear transformation.. –  zapkm Feb 27 '12 at 17:29
I really appreciate you taking the time to answer my question. But if you could spare a moment, could you give me a simple example of rotating $u$ to $v$ in 3-space? –  FlyWheel Feb 27 '12 at 17:32
@FlyWheel, I edited the answer as your requirement... –  zapkm Feb 27 '12 at 17:41

I believe this article can help: Arbitrary Axis Rotation

share|improve this answer
Thanks, that's a nice link. However, my question is about how one actually comes up with a set of rotations so that $u$ can point in the same direction as $v$. –  FlyWheel Feb 27 '12 at 17:09

Two 3-vectors define a plane. Rotation in that plane (i.e. about normal vector of that plane) brings one vector to another. So the quick sketch for the solution would be:

  1. find normal vector to the common plane (I think this is just the vector product $u \times v$)
  2. find rotation angle $\theta$ using dot product ($\theta = \cos^{-1}(\frac{u \cdot v}{||u|| ||v||})$)
  3. express the rotation using some axis-angle representation (axis is the normal vector from 1. and angle is the $\theta$ from 2.)

I am curious if someone expresses the straightforward formula here...

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.