diff --git a/_example/piechart.go b/_example/piechart.go index 7344652..c3af3a8 100644 --- a/_example/piechart.go +++ b/_example/piechart.go @@ -4,10 +4,11 @@ package main import ( "fmt" - "github.com/gizak/termui" "math" "math/rand" "time" + + "github.com/gizak/termui" ) func main() { diff --git a/piechart.go b/piechart.go index 15aef60..8c6bc46 100644 --- a/piechart.go +++ b/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 } + return -x }