Cleanup piechart
This commit is contained in:
parent
10d90f04d8
commit
3bbd34011a
@ -4,10 +4,11 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/gizak/termui"
|
||||
"math"
|
||||
"math/rand"
|
||||
"time"
|
||||
|
||||
"github.com/gizak/termui"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
28
piechart.go
28
piechart.go
@ -35,16 +35,17 @@ type PieChart struct {
|
||||
Colors []Attribute // colors to by cycled through (see defaultColors)
|
||||
BorderColor Attribute // color of the pie-border
|
||||
Label PieChartLabel // callback function for labels
|
||||
Offset float64 // where to start drawing? (see piechartOffsetUp)
|
||||
Offset float64 // which angle to start drawing at? (see piechartOffsetUp)
|
||||
}
|
||||
|
||||
// Creates a new pie chart with reasonable defaults and no labels
|
||||
// NewPieChart Creates a new pie chart with reasonable defaults and no labels
|
||||
func NewPieChart() *PieChart {
|
||||
pc := &PieChart{Block: *NewBlock()}
|
||||
pc.Colors = defaultColors
|
||||
pc.Offset = piechartOffsetUp
|
||||
pc.BorderColor = ColorDefault
|
||||
return pc
|
||||
return &PieChart{
|
||||
Block: *NewBlock(),
|
||||
Colors: defaultColors,
|
||||
Offset: piechartOffsetUp,
|
||||
BorderColor: ColorDefault,
|
||||
}
|
||||
}
|
||||
|
||||
// computes the color for a given data index
|
||||
@ -52,18 +53,16 @@ func (pc *PieChart) colorFor(i int) Attribute {
|
||||
return pc.Colors[i%len(pc.Colors)]
|
||||
}
|
||||
|
||||
// creates the buffer for the pie chart
|
||||
// Buffer creates the buffer for the pie chart
|
||||
func (pc *PieChart) Buffer() Buffer {
|
||||
buf := pc.Block.Buffer()
|
||||
w, h := pc.innerArea.Dx(), pc.innerArea.Dy()
|
||||
center := image.Point{X: w / 2, Y: h / 2}
|
||||
|
||||
// radius for the border
|
||||
r := 0.0
|
||||
r := float64(w/2/xStretch) - 1.0
|
||||
if h < w/xStretch {
|
||||
r = float64(h/2) - 1.0
|
||||
} else {
|
||||
r = float64(w/2/xStretch) - 1.0
|
||||
}
|
||||
|
||||
// make border
|
||||
@ -148,10 +147,10 @@ func fill(p image.Point, c *Cell, buf *Buffer) {
|
||||
w, e, row := p.X, p.X, p.Y
|
||||
|
||||
for empty(w-1, row) {
|
||||
w -= 1
|
||||
w--
|
||||
}
|
||||
for empty(e+1, row) {
|
||||
e += 1
|
||||
e++
|
||||
}
|
||||
for x := w; x <= e; x++ {
|
||||
buf.Set(x, row, *c)
|
||||
@ -286,7 +285,6 @@ func sum(data []float64) float64 {
|
||||
func abs(x int) int {
|
||||
if x >= 0 {
|
||||
return x
|
||||
} else {
|
||||
}
|
||||
return -x
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user