公司产品应用了RGB led灯,需要做颜色渐变过渡。仿照js上的颜色渐变过渡,做了一个颜色渐变算法,理论上这个简陋的算法也能用于亮度渐变
备份
/******************************************************************************
* \par Description: light颜色渐变
* \param[in] color_s 指向起始颜色
* \param[in] color_e 指向终止颜色
* \param[in] color_step 渐变步数
* \param[out] color_value 返回的渐变颜色
* \return none
* <author> <time>
* kaizheng 2016-3-25
*******************************************************************************/
void get_light_color_gradient(uint8 *color_s , uint8 *color_e , uint8 *color_value,uint8 color_step)
{
int F;
F = (color_step << 8) / color_gradient_step;
*color_value = color_s[0] + ((F * (color_e[0] - color_s[0])) >> 8);
*(color_value+1) = color_s[1] + ((F * (color_e[1] - color_s[1])) >> 8);
*(color_value+2) = color_s[2] + ((F * (color_e[2] - color_s[2])) >> 8);
}