If I have a beam of light traveling in the direction of the vector $$\hat I=(i_x,i_y,i_z),$$ and it hits a surface at point with a known normal vector $$\hat n=(n_x,n_y,n_z),$$ then how do I find the direction of reflected vector?
Problem with light reflecting from a surface
57 Views Asked by Bumbble Comm https://math.techqa.club/user/bumbble-comm/detail AtThere are 2 best solutions below
On
Assume the normal vector $\hat{n}$ is a unit vector.
Split the incoming direction vector $\vec{I}$ into two components, one normal to the plane of reflection, the other one tangent to that. Under reflection, the normal component will pick up a minus sign while the tangent part remains the same.
Let $\vec{O}$ be the outgoing direction vector. We have
$$\begin{align}\vec{I} &= +(\vec{I}\cdot \hat{n})\hat{n} + (\vec{I} - (\vec{I}\cdot \hat{n})\hat{n})\\ \leadsto\quad \vec{O} & = -(\vec{I}\cdot \hat{n})\hat{n} + (\vec{I} - (\vec{I}\cdot \hat{n})\hat{n}) = \vec{I} - 2(\vec{I}\cdot \hat{n})\hat{n}\end{align}$$ When the normal vector $\vec{n}$ is not normalized, we have following formula instead:
$$\vec{O} = \vec{I} - 2\frac{\vec{I}\cdot \vec{n}}{|\vec{n}|^2} \vec{n}$$
For all the calculations I will assume that $\hat I$ and $\hat n$ are normalized to unity.
First, you want to check if the two vectors are parallel. For that, calculate $\hat I\cdot\hat n$ if the answer is $\pm 1$, then the reflected beam direction is given by $\hat R=-\hat I$.
Otherwise, you know that the reflected beam, the incident beam and the normal are in the same plane. You can write this using cross products: $$\hat I\times \hat n=\hat n\times \hat R$$ You also use that the beam scatters on the same side of the plane as the incident beam. You can write this as $$\hat I\cdot \hat n=\hat R\cdot\hat n$$ You can now use the components to write $\hat R=r_x,r_y,r_z$. The final equation that you need is $$r_x^2+r_y^2+r_z^2=1$$
Let me know if this is enough