彩虹是因为阳光射到空中接近圆形的小水滴,造成色散及反射而成。阳光射入水滴时会同时以不同角度入射,在水滴内亦以不同的角度反射。当中以40至42度的反射最为强烈,造成我们所见到的彩虹。造成这种反射时,阳光进入水滴,先折射一次,然后在水滴的背面反射,最后离开水滴时再折射一次。因为水对光有色散的作用,不同波长的光的折射率有所不同,蓝光的折射角度比红光大。由于光在水滴内被反射,所以观察者看见的光谱是倒过来,红光在最上方,其他颜色在下。
其实只要空气中有水滴,而阳光正在观察者的背后以低角度照射,便可能产生可以观察到的彩虹现象。彩虹最常在下午,雨后刚转天晴时出现。这时空气内尘埃少而充满小水滴,天空的一边因为仍有雨云而较暗。而观察者头上或背后已没有云的遮挡而可见阳光,这样彩虹便会较容易被看到。另一个经常可见到彩虹的地方是瀑布附近。在晴朗的天气下背对阳光在空中洒水或喷洒水雾,亦可以人工制造彩虹。
空气里水滴的大小,决定了彩虹的色彩鲜艳程度和宽窄。空气中的水滴大,虹就鲜艳,也比较窄;反之,水滴小,虹色就淡,也比较宽。我们面对着太阳是看不到彩虹的,只有背着太阳才能看到彩虹,所以早晨的彩虹出现在西方,黄昏的彩虹总在东方出现。可我们看不见,只有乘飞机从高空向下看,才能见到。虹的出现与当时天气变化相联系,一般我们从虹出现在天空中的位置可以推测当时将出现晴天或雨天。东方出现虹时,本地是不大容易下雨的,而西方出现虹时,本地下雨的可能性却很大。
彩虹的明显程度,取决于空气中小水滴的大小,小水滴体积越大,形成的彩虹越鲜亮,小水滴体积越小,形成的彩虹就不明显。一般冬天的气温较低,在空中不容易存在小水滴,下雨的机会也少,所以冬天一般不会有彩虹出现。
彩虹其实并非出现在半空中的特定位置。它是观察者看见的一种光学现象,彩虹看起来的所在位置,会随著观察者而改变。当观察者看到彩虹时,它的位置必定是在太阳的相反方向。彩虹的拱以内的中央,其实是被水滴反射,放大了的太阳影像。所以彩虹以内的天空比彩虹以外的要亮。彩虹拱形的正中心位置,刚好是观察者头部阴影的方向,虹的本身则在观察者头部的影子与眼睛一线以上40°至42°的位置。因此当太阳在空中高于42度时,彩虹的位置将在地平线以下而看不见。这亦是为什么彩虹很少在中午出现的原因。