dancefloor-monorepo/go/patterns/super_rgb.go
2020-05-04 01:29:45 +01:00

27 lines
518 B
Go

package patterns
type SuperRgb struct {
Brightness uint8
iteration int
}
func (p *SuperRgb) Draw(width, height int) *[][]Colour {
out := make([][]Colour, width)
for i := 0; i < width; i++ {
out[i] = make([]Colour, height)
for j := 0; j < height; j++ {
switch (i + j + p.iteration/12) % 4 {
case 0, 2:
out[i][j] = [3]uint8{p.Brightness, 0, 0}
case 1:
out[i][j] = [3]uint8{0, p.Brightness, 0}
case 3:
out[i][j] = [3]uint8{0, 0, p.Brightness}
}
}
}
p.iteration++
return &out
}