42 lines
1.1 KiB
Go
Executable File
42 lines
1.1 KiB
Go
Executable File
package patterns
|
|
|
|
import "math/rand"
|
|
import "time"
|
|
|
|
func RedPanel(w int, h int) [][]RGBcolor {
|
|
return FillPanel(w, h, 255, 0, 0)
|
|
}
|
|
|
|
var lastColour RGBcolor
|
|
var lastIteration uint16 = 0
|
|
var lastPlasmaValue byte = 0
|
|
|
|
func RandomColourPanel(w int, h int, speed uint16) [][]RGBcolor {
|
|
if lastIteration > 0 {
|
|
lastIteration -= 40
|
|
}
|
|
if lastIteration <= 0 {
|
|
r := rand.New(rand.NewSource(time.Now().UnixNano()))
|
|
var newColour RGBcolor
|
|
newColour[0] = byte(r.Intn(255))
|
|
newColour[1] = byte(r.Intn(255))
|
|
newColour[2] = byte(r.Intn(255))
|
|
lastColour = newColour
|
|
lastIteration = speed
|
|
}
|
|
return FillPanel(w, h, lastColour[0], lastColour[1], lastColour[2])
|
|
}
|
|
|
|
func PlasmaColourPanel(w int, h int, speed uint16) [][]RGBcolor {
|
|
if lastIteration > 0 {
|
|
lastIteration -= 40
|
|
}
|
|
if lastIteration <= 0 {
|
|
lastPlasmaValue++
|
|
var newColour RGBcolor
|
|
newColour[0],newColour[1],newColour[2] = plasmaRGBFromVal(lastPlasmaValue)
|
|
lastColour = newColour
|
|
lastIteration = speed
|
|
}
|
|
return FillPanel(w, h, lastColour[0], lastColour[1], lastColour[2])
|
|
} |