-
-
Notifications
You must be signed in to change notification settings - Fork 60
/
Copy pathhappy_palettegen.go
29 lines (24 loc) · 1.02 KB
/
happy_palettegen.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
package colorful
// Uses the HSV color space to generate colors with similar S,V but distributed
// evenly along their Hue. This is fast but not always pretty.
// If you've got time to spare, use Lab (the non-fast below).
func FastHappyPaletteWithRand(colorsCount int, rand RandInterface) (colors []Color) {
colors = make([]Color, colorsCount)
for i := 0; i < colorsCount; i++ {
colors[i] = Hsv(float64(i)*(360.0/float64(colorsCount)), 0.8+rand.Float64()*0.2, 0.65+rand.Float64()*0.2)
}
return
}
func FastHappyPalette(colorsCount int) (colors []Color) {
return FastHappyPaletteWithRand(colorsCount, getDefaultGlobalRand())
}
func HappyPaletteWithRand(colorsCount int, rand RandInterface) ([]Color, error) {
pimpy := func(l, a, b float64) bool {
_, c, _ := LabToHcl(l, a, b)
return 0.3 <= c && 0.4 <= l && l <= 0.8
}
return SoftPaletteExWithRand(colorsCount, SoftPaletteSettings{pimpy, 50, true}, rand)
}
func HappyPalette(colorsCount int) ([]Color, error) {
return HappyPaletteWithRand(colorsCount, getDefaultGlobalRand())
}