This java applet shows the physics behind a beam of light impinging at some angle on the smooth/rough surface. (reflection/ total internal reflection/diffuse reflection and refraction)
Usage: You will find a flashlight under the water surface.
Click the blue region and drag the mouse button to move the flashlight.
Click the green region and drag the mouse button to change the direction of the flashlight.
Some of the light were reflected back to the water,
When the angle is large enough, the refraction beams vanished ( Total internal reflection).
Click the blue region twice, and the flashlight will turn into a laser pointer.
You can move or change direction of the the laser point with similar way as metioned above.
In laser pointer mode: click the water/air interface will change the property of the interface.
Toggle between flat surface/rough surface. In rough surface mode: watch the diffuse reflection. In flat surface mode: a circle will be shown while drag the mouse button.
the length of yellow bar = the length of orange bar => law of reflection
The length of red bar/the length of yellow bar = constant (index of refraction)
Click the blue region of laser point to change back to flashlight mode.
Enjoy/Play the java applet and learn the physics behind it!