examples/polygon: Better coloring

This commit is contained in:
Hajime Hoshi 2018-08-14 02:14:19 +09:00
parent 340a4b4dfa
commit f2b4dfd061

View File

@ -56,36 +56,30 @@ func genVertices(num int) []ebiten.Vertex {
vs := []ebiten.Vertex{} vs := []ebiten.Vertex{}
for i := 0; i < num; i++ { for i := 0; i < num; i++ {
theta := float64(i) / float64(num) * 2 * math.Pi rate := float64(i) / float64(num)
cr := float32(0) cr := 0.0
cg := float32(0) cg := 0.0
cb := float32(0) cb := 0.0
if 0 <= i && i < 2*num/3 { if rate < 1.0/3.0 {
cr = 2 * float32(i) / float32(num/3) cb = 2 - 2*(rate*3)
cr = 2 * (rate * 3)
} }
if num/3 <= i && i < 2*num/3 { if 1.0/3.0 <= rate && rate < 2.0/3.0 {
cr = 2 - 2*float32(i-num/3)/float32(num/3) cr = 2 - 2*(rate-1.0/3.0)*3
cg = 2 * (rate - 1.0/3.0) * 3
} }
if num/3 <= i && i < 2*num/3 { if 2.0/3.0 <= rate {
cg = 2 * float32(i-num/3) / float32(num/3) cg = 2 - 2*(rate-2.0/3.0)*3
} cb = 2 * (rate - 2.0/3.0) * 3
if 2*num/3 <= i && i < num {
cg = 2 - 2*float32(i-2*num/3)/float32(num/3)
}
if 2*num/3 <= i && i < num {
cb = 2 * float32(i-2*num/3) / float32(num/3)
}
if 0 <= i && i < num/3 {
cb = 2 - 2*float32(i)/float32(num/3)
} }
vs = append(vs, ebiten.Vertex{ vs = append(vs, ebiten.Vertex{
DstX: float32(r*math.Cos(theta)) + centerX, DstX: float32(r*math.Cos(2*math.Pi*rate)) + centerX,
DstY: float32(r*math.Sin(theta)) + centerY, DstY: float32(r*math.Sin(2*math.Pi*rate)) + centerY,
SrcX: 0, SrcX: 0,
SrcY: 0, SrcY: 0,
ColorR: cr, ColorR: float32(cr),
ColorG: cg, ColorG: float32(cg),
ColorB: cb, ColorB: float32(cb),
ColorA: 1, ColorA: 1,
}) })
} }