Skip to content

Commit 2695b8e

Browse files
committed
add some test cases.
1 parent cb31767 commit 2695b8e

File tree

4 files changed

+1668
-42
lines changed

4 files changed

+1668
-42
lines changed

color.go

Lines changed: 36 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -13,50 +13,46 @@ type RGB struct {
1313
func (c *HSV) RGB() *RGB {
1414
var r, g, b float64
1515
if c.S == 0 {
16-
r = c.V * 255
17-
g = c.V * 255
18-
b = c.V * 255
19-
} else {
20-
h := c.H * 6
21-
if h == 6 {
22-
h = 0
16+
return &RGB{
17+
R: c.V,
18+
G: c.V,
19+
B: c.V,
2320
}
24-
i := math.Floor(h)
25-
v1 := c.V * (1 - c.S)
26-
v2 := c.V * (1 - c.S*(h-i))
27-
v3 := c.V * (1 - c.S*(1-(h-i)))
21+
}
2822

29-
switch i {
30-
case 0:
31-
r = c.V
32-
g = v3
33-
b = v1
34-
case 1:
35-
r = v2
36-
g = c.V
37-
b = v1
38-
case 2:
39-
r = v1
40-
g = c.V
41-
b = v3
42-
case 3:
43-
r = v1
44-
g = v2
45-
b = c.V
46-
case 4:
47-
r = v3
48-
g = v1
49-
b = c.V
50-
default:
51-
r = c.V
52-
g = v1
53-
b = v2
54-
}
23+
i := math.Floor(c.H * 6.0)
24+
f := c.H*6.0 - i
25+
p := c.V * (1 - c.S)
26+
q := c.V * (1 - c.S*f)
27+
t := c.V * (1 - c.S*(1-f))
5528

56-
r = r * 255
57-
g = g * 255
58-
b = b * 255
29+
switch int(i) % 6 {
30+
case 0:
31+
r = c.V
32+
g = t
33+
b = p
34+
case 1:
35+
r = q
36+
g = c.V
37+
b = p
38+
case 2:
39+
r = p
40+
g = c.V
41+
b = t
42+
case 3:
43+
r = p
44+
g = q
45+
b = c.V
46+
case 4:
47+
r = t
48+
g = p
49+
b = c.V
50+
case 5:
51+
r = c.V
52+
g = p
53+
b = q
5954
}
55+
6056
rgb := &RGB{r, g, b}
6157
return rgb
6258
}

0 commit comments

Comments
 (0)