// Not used by default but much simpler to understand private static void SetPixelDemo(SenseHatLedMatrix ledMatrix) { ledMatrix.Fill(Color.Purple); ledMatrix.SetPixel(0, 0, Color.Red); ledMatrix.SetPixel(1, 0, Color.Green); ledMatrix.SetPixel(2, 0, Color.Blue); for (int i = 1; i <= 7; i++) { ledMatrix.SetPixel(i, i, Color.White); } }
public void Render(Color[] colorMatrix) { if (colorMatrix.Length != height * width) { throw new ArgumentException($"LEDs should be of length {height * width} but is {colorMatrix.Length}", nameof(colorMatrix)); } for (var i = 0; i < width * height; i++) { if (previousColorMatrix[i] == colorMatrix[i]) { continue; } var x = i % width; var y = i / width; _ledMatrix.SetPixel(x, y, colorMatrix[i]); } previousColorMatrix = colorMatrix; }