It’s because the layer of oil is roughly as thick as the wavelength of visible light. Different colours are different wavelengths so variations in the thickness of the oil and in the viewing angle will show different colours, often giving a rainbow effect.
Rainbows happen because different colours are bent (**re**fracted) by different amounts inside rain drops. Oil colours happen because of **dif**fraction; when light reflecting off the surface of the oil interferes with light reflecting off the surface of the water, with the two surfaces being very close together. Diffraction also explains the colours you see on a CD, due to the grooves being so close together.
Latest Answers