27 lines
518 B
Go
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
|
|
}
|