星星的不同颜色是由它本身的温度所决定的。星星表面的温度不同,它发出光的颜色就不同。比如发白色光的星星表面温度很高,可达11500度以上;发红色光的星星,表面温度达2600-3600度;发蓝色光的星星,表面温度达25000-40000度。而太阳表面温度是6000度,看上去是黄颜色的。 因为我们距离星星非常遥远,加之大气的折射作用,所以用肉眼看不到星星五颜六色的光。光从红到紫,频率变大,能量增大。 恒星的物质组成基本是一样的,其颜色取决于温度。有的恒星表面温度高,25000-40000度,发出的光能量较大,所以高频的成分多一些,偏蓝;而另一些恒星温度低一些,表面温度2600-3600度,发出的光能量小,因而低频的成分较多,偏红;还有温度介于两者之间的,11500度以上,25000度以下,往往是白色。注意,在可见光中,红光的频率最低,蓝紫光的频率最高。另外还有一个因素:蓝移和红移。如果我们观察的天体正在远离我们,那么我们观察到的光的频率会向低频(也就是红色)偏移;相反的,如果如果我们观察的天体正在靠近我们,那么我们观察到的光的频率会向高频(也就是蓝紫色)偏移。参见百度百科“多普勒效应”词条
http://baike.baidu.com/view/1805.html 对于行星,那就看组成行星表面的物质了。比如地球,地球表面水多,水容易散射蓝光,红光透射到了海底,所以从宇宙中看到地球是蓝色的。火星表面多含铁的氧化物,所以显红色````