Search code examples
mathcolorscolor-pickercolor-wheel

What is the math behind the Colour Wheel


I want to create a pie with 12 slices, with each slice a different colour.

Pretty much every colour wheel seems to follow the same format; eg: http://www.tigercolor.com/color-lab/color-theory/color-theory-intro.htm .

But what algorithms are there for generating the colours? What is the math behind RGB(theta)? Surely there must be some established science on this, but Google is not giving me any clues.


Solution

  • Have a look at http://www.easyrgb.com it has the algorithms behind many color conversions. Here's the RGB -> HSV one.

    var_R = ( R / 255 )                     //RGB from 0 to 255
    var_G = ( G / 255 )
    var_B = ( B / 255 )
    
    var_Min = min( var_R, var_G, var_B )    //Min. value of RGB
    var_Max = max( var_R, var_G, var_B )    //Max. value of RGB
    del_Max = var_Max - var_Min             //Delta RGB value 
    
    V = var_Max
    
    if ( del_Max == 0 )                     //This is a gray, no chroma...
    {
       H = 0                                //HSV results from 0 to 1
       S = 0
    }
    else                                    //Chromatic data...
    {
       S = del_Max / var_Max
    
       del_R = ( ( ( var_Max - var_R ) / 6 ) + ( del_Max / 2 ) ) / del_Max
       del_G = ( ( ( var_Max - var_G ) / 6 ) + ( del_Max / 2 ) ) / del_Max
       del_B = ( ( ( var_Max - var_B ) / 6 ) + ( del_Max / 2 ) ) / del_Max
    
       if      ( var_R == var_Max ) H = del_B - del_G
       else if ( var_G == var_Max ) H = ( 1 / 3 ) + del_R - del_B
       else if ( var_B == var_Max ) H = ( 2 / 3 ) + del_G - del_R
    
       if ( H < 0 ) H += 1
       if ( H > 1 ) H -= 1
    }