Really Big Colour Code: 117313504


Re: Really Big Colour Code: 117313504
#16
I derive a color algorithmically. I actually prefer this method over trying to define compliment colors by hand.

Code:
//========== complimentColor() =================================================
//
// Purpose:     Changes the given RGBA color into a "complimentary" color, which
//              stands out in the original color, but maintains the same hue.
//
//==============================================================================
void complimentColor(const GLfloat *originalColor, GLfloat *complimentColor)
{
    float   brightness      = 0.0;
    
    // Isolate the color's grayscale intensity http://en.wikipedia.org/wiki/Grayscale
    brightness =    originalColor[0] * 0.30
                +   originalColor[1] * 0.59
                +   originalColor[2] * 0.11;
    
    //compliment dark colors with light ones and light colors with dark ones.
    if(brightness > 0.5)
    {
        // Darken
        complimentColor[0] = MAX(originalColor[0] - 0.40,   0.0);
        complimentColor[1] = MAX(originalColor[1] - 0.40,   0.0);
        complimentColor[2] = MAX(originalColor[2] - 0.40,   0.0);
    }
    else
    {
        // Lighten
        complimentColor[0] = MIN(originalColor[0] + 0.40,   1.0);
        complimentColor[1] = MIN(originalColor[1] + 0.40,   1.0);
        complimentColor[2] = MIN(originalColor[2] + 0.40,   1.0);
    }
    
    complimentColor[3] = originalColor[3];
    
}//end complimentColor
Reply
« Next Oldest | Next Newest »



Messages In This Thread
Re: Really Big Colour Code: 117313504 - by Allen Smith - 2013-02-11, 22:29

Forum Jump:


Users browsing this thread: 1 Guest(s)