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)); } }
public Cell(bool isAlive = false) { _color = new ColorHSV(); _isAlive = isAlive; }
public Cell(double hue, double saturation, double value) { _color = new ColorHSV(hue, saturation, value); _isAlive = true; }
public Cell(ColorHSV color) { _color = color; _isAlive = true; }
public static SolidColorBrush ToBrush(this ColorHSV color) { return(new SolidColorBrush(color.ToColor())); }