Mã màu cầu vồng

Manhdd

Cố Vấn CLB
Staff member
Chỉ cần nhập 1 thông số, bạn sẽ thu được mã RGB của 1 màu trên phổ cầu vồng. Mình chia phổ màu từ Đỏ đến Tím thành 256 khoảng. Nhập i = 0 bạn sẽ có màu đỏ, i =256 bạn được màu tím:
Code:
void coderainbow (int16_t i, uint8_t *R, uint8_t *G, uint8_t *B) // i: [0:256]
{
    if ((i>=0) && (i <= 256/4))
    {
        *R = 255;
        *G = 255*i/64;
        *B = 0;
    }
    else if ((i>256/4) && (i <= 256/2))
    {   
        *R = 255*(128-i)/64;
        *G = 255;
        *B = 0;
    }
    else if ((i>256/2) && (i <= 256*3/4))
    {
        *R = 0;
        *G = 255*(192-i)/64;
        *B = 255*(i-128)/64;
    }
    else
    {
        *R = 255*(i-192)/64;
        *G = 0;
        *B = 255;        
    }
}
Mong rằng bài viết này hữu ích cho các coder :d
 
Top