vector HSL_2_RGB( vector hsl ) { // hsl H S L vector rgb; float var1, var2; if ( S == 0 ) //HSL values = 0 ÷ 1 { rgb.x = hsl.y; //RGB results rgb.y = hsl.y; rgb.z = hsl.y; } else { if ( L < 0.5 ) var_2 = L * ( 1 + S ); else var_2 = ( L + S ) - ( S * L ); var_1 = 2 * L - var_2; R = 255 * Hue_2_RGB( var_1, var_2, H + ( 1 / 3 ) ); G = 255 * Hue_2_RGB( var_1, var_2, H ); B = 255 * Hue_2_RGB( var_1, var_2, H - ( 1 / 3 ) ) ; } return rgb; } float Hue_2_RGB( vector hue v1, v2, vH ) //Function Hue_2_RGB { // hue v1, v2, vH if ( vH < 0 ) vH += 1 if ( vH > 1 ) vH -= 1 if ( ( 6 * vH ) < 1 ) return ( v1 + ( v2 - v1 ) * 6 * vH ) if ( ( 2 * vH ) < 1 ) return ( v2 ) if ( ( 3 * vH ) < 2 ) return ( v1 + ( v2 - v1 ) * ( ( 2 / 3 ) - vH ) * 6 ) return ( v1 ) }