Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

The formula for calculating a reflection vector is as follows: $$ R = V - 2N(V\cdot N) $$ Where V is the incident vector and N is the normal vector on the plane in question.

Why does this formula work? I haven't seen any good explanations of it. I don't understand the significance of doubling the normal vector, nor the relevance of taking the dot product.

share|cite|improve this question
Remember that the dot product is related to the cosine of the angle between two vectors. – J. M. May 1 '11 at 22:48

$\langle V,N\rangle N$ is the orthogonal projection of $V$ onto (the line determined by) $N$. That is, if you want to write $V$ as a sum of two orthogonal vectors, $u$ and $n$, with $u$ in the plane and $n$ having the same direction as $N$ (that is, orthogonal to the plane), then $n = \langle V,N\rangle N$ and $u = V - \langle V,N\rangle N$.

Since $N$ is normal to the plane, the vector $u = V - \langle V,N\rangle N$ is in the plane. That is, $u$ is the orthogonal projection of $V$ onto the plane.

To take the reflection, you want to go to the point in the plane "directly below" $V$ (that is, to $u$), and then go in the opposite direction to where $V$ is. So what you are doing is simply reversing the normal component to get the reflection: instead of adding $\langle V,N\rangle N$, you subtract it because that reverses the direction. So instead of $$V = \underbrace{\Bigl( V - \langle V,N\rangle N\Bigr)}_{\text{in the plane}} + \underbrace{\langle V,N\rangle N}_{\text{orthogonal to the plane}}$$ you take $$\underbrace{\Bigl( V - \langle V,N\rangle N\Bigr)}_{\text{in the plane}} - \underbrace{\langle V,N\rangle N}_{\text{orthogonal to the plane}}.$$

share|cite|improve this answer
I fixed a couple of minor typos; hope you don't mind. – Rahul May 2 '11 at 5:16
@Rahul: Certainly not! Thanks. – Arturo Magidin May 2 '11 at 14:27
Would be helpful to add some visualization to this. – vexe Nov 6 '15 at 23:54… – vexe Nov 7 '15 at 0:06

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.