コード例 #1
0
        public static Color ToColor(this ColorHSV color)
        {
            int    hi = Convert.ToInt32(Math.Floor(color.Hue / 60)) % 6;
            double f  = color.Hue / 60 - Math.Floor(color.Hue / 60);

            var  value = color.Value * 255;
            byte v     = Convert.ToByte(value);
            byte p     = Convert.ToByte(value * (1 - color.Saturation));
            byte q     = Convert.ToByte(value * (1 - f * color.Saturation));
            byte t     = Convert.ToByte(value * (1 - (1 - f) * color.Saturation));

            if (hi == 0)
            {
                return(Color.FromArgb(255, v, t, p));
            }
            else if (hi == 1)
            {
                return(Color.FromArgb(255, q, v, p));
            }
            else if (hi == 2)
            {
                return(Color.FromArgb(255, p, v, t));
            }
            else if (hi == 3)
            {
                return(Color.FromArgb(255, p, q, v));
            }
            else if (hi == 4)
            {
                return(Color.FromArgb(255, t, p, v));
            }
            else
            {
                return(Color.FromArgb(255, v, p, q));
            }
        }
コード例 #2
0
ファイル: Cell.cs プロジェクト: PostCharles/GameOfLifeInColor
 public Cell(bool isAlive = false)
 {
     _color   = new ColorHSV();
     _isAlive = isAlive;
 }
コード例 #3
0
ファイル: Cell.cs プロジェクト: PostCharles/GameOfLifeInColor
 public Cell(double hue, double saturation, double value)
 {
     _color   = new ColorHSV(hue, saturation, value);
     _isAlive = true;
 }
コード例 #4
0
ファイル: Cell.cs プロジェクト: PostCharles/GameOfLifeInColor
 public Cell(ColorHSV color)
 {
     _color   = color;
     _isAlive = true;
 }
コード例 #5
0
 public static SolidColorBrush ToBrush(this ColorHSV color)
 {
     return(new SolidColorBrush(color.ToColor()));
 }