Why does the formula for calculating a reflection vector work?
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.
Solution 1:
$\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}}.$$