private static void InitPalette() { HSV hsv = new HSV(); Color color; Palette.Clear(); int i; // calc 100 reds, black to bright red hsv.H = 0.0f; hsv.S = 1.0f; for (i = 0; i < 100; i++) { hsv.V = i / 100.0f; color = hsv.ToRGB().ToArgb(); Palette.Add(color); } // gives 100 hues red to yellow hsv.V = 1.0f; for (i = 0; i < 100; i++) { color = hsv.ToRGB().ToArgb(); Palette.Add(color); hsv.H += 0.00166666f; } }
// 0,0 is lower left public void SetPixel(int x, int y, HSV hsv) { Color color = hsv.ToRGB().ToArgb(); SetPixel(x, y, color); }
/// <summary> /// Add a frame and set the pixel to the given color. This cannot be used to update a pixel that /// has already been set. See update functions. /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="hsv"></param> public void SetPixel(int x, int y, HSV hsv) { var color = hsv.ToRGB(); SetPixel(x, y, color); }
/// <summary> /// Update a existing pixel in the specified frame. The pixel must exist from either the InitializeNextFrame /// or the SetPixel methods or an exception will occur. /// </summary> /// <param name="frame"></param> /// <param name="x"></param> /// <param name="y"></param> /// <param name="hsv"></param> public void UpdatePixel(int frame, int x, int y, HSV hsv) { var color = hsv.ToRGB(); UpdatePixel(frame, x, y, color); }
protected override void SetupRender() { if (ColorType == PinWheelColorType.Random) { HSV temphsv = new HSV(); _newColors = new List<ColorGradient>(); for (int newColr = 0; newColr < Arms; newColr++) { temphsv.H = Rand(); temphsv.S = 1.0f; temphsv.V = 1.0f; _newColors.Add(new ColorGradient(temphsv.ToRGB())); } } }