forked from fogleman/physarum
/
palette.go
101 lines (93 loc) · 1.73 KB
/
palette.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package physarum
import (
"fmt"
"image/color"
"math/rand"
)
type Palette []color.RGBA
func ShuffledPalette(palette Palette) Palette {
result := make(Palette, len(palette))
for i, j := range rand.Perm(len(result)) {
result[i] = palette[j]
}
return result
}
func RandomPalette() Palette {
palette := Palettes[rand.Intn(len(Palettes))]
return ShuffledPalette(palette)
}
func (p Palette) Print() {
for _, c := range p {
fmt.Printf("HexColor(0x%02X%02X%02X),\n", c.R, c.G, c.B)
}
fmt.Println()
}
func BlackPalette() Palette{
palette := Palettes[rand.Intn(len(Palettes))]
return ShuffledPalette(palette)
}
var Palettes = []Palette{/*
Palette{
HexColor(0xFA2B31),
HexColor(0xFFBF1F),
HexColor(0xFFF146),
HexColor(0xABE319),
HexColor(0x00C481),
},
Palette{
HexColor(0x004358),
HexColor(0x1F8A70),
HexColor(0xBEDB39),
HexColor(0xFFE11A),
HexColor(0xFD7400),
},
Palette{
HexColor(0x334D5C),
HexColor(0x45B29D),
HexColor(0xEFC94C),
HexColor(0xE27A3F),
HexColor(0xDF5A49),
},
Palette{
HexColor(0xFF8000),
HexColor(0xFFD933),
HexColor(0xCCCC52),
HexColor(0x8FB359),
HexColor(0x192B33),
},
Palette{
HexColor(0x730046),
HexColor(0xBFBB11),
HexColor(0xFFC200),
HexColor(0xE88801),
HexColor(0xC93C00),
},
Palette{
HexColor(0xE6DD00),
HexColor(0x8CB302),
HexColor(0x008C74),
HexColor(0x004C66),
HexColor(0x332B40),
},
Palette{
HexColor(0xF15A5A),
HexColor(0xF0C419),
HexColor(0x4EBA6F),
HexColor(0x2D95BF),
HexColor(0x955BA5),
},
Palette{
HexColor(0xF41C54),
HexColor(0xFF9F00),
HexColor(0xFBD506),
HexColor(0xA8BF12),
HexColor(0x00AAB5),
},*/
Palette{
HexColor(0xFFFFFF),
HexColor(0xFA1A1A),
HexColor(0xFF00FF),
HexColor(0x33FFFF),
HexColor(0xFF9900),
},
}