Flood.GUI.Util.HSVToColor C# (CSharp) Method

HSVToColor() public static method

public static HSVToColor ( float h, float s, float v ) : System.Color
h float
s float
v float
return System.Color
        public static Color HSVToColor(float h, float s, float v)
        {
            int hi = Convert.ToInt32(Math.Floor(h / 60)) % 6;
            float f = h / 60 - (float)Math.Floor(h / 60);

            v = v * 255;
            var va = Convert.ToByte(v);
            var p = Convert.ToByte(v * (1 - s));
            var q = Convert.ToByte(v * (1 - f * s));
            var t = Convert.ToByte(v * (1 - (1 - f) * s));

            if (hi == 0)
                return new Color(va, t, p, 255);
            if (hi == 1)
                return new Color(q, va, p, 255);
            if (hi == 2)
                return new Color(p, va, t, 255);
            if (hi == 3)
                return new Color(p, q, va, 255);
            if (hi == 4)
                return new Color(t, p, va, 255);
            return new Color(va, p, q, 255);
        }