go-chart/grid_line.go

44 lines
1.0 KiB
Go
Raw Normal View History

2016-07-12 03:48:51 +02:00
package chart
// GridLine is a line on a graph canvas.
type GridLine struct {
IsMinor bool
IsVertical bool
Style Style
Value float64
}
// Major returns if the gridline is a `major` line.
func (gl GridLine) Major() bool {
return !gl.IsMinor
}
// Minor returns if the gridline is a `minor` line.
func (gl GridLine) Minor() bool {
return gl.IsMinor
}
// Vertical returns if the line is vertical line or not.
func (gl GridLine) Vertical() bool {
return gl.IsVertical
}
// Horizontal returns if the line is horizontal line or not.
func (gl GridLine) Horizontal() bool {
return !gl.IsVertical
}
// Render renders the gridline
func (gl GridLine) Render(r Renderer, canvasBox Box, ra Range) {
lineleft := canvasBox.Left
lineright := canvasBox.Right
lineheight := canvasBox.Bottom - ra.Translate(gl.Value)
r.SetStrokeColor(gl.Style.GetStrokeColor(DefaultAxisColor))
r.SetStrokeWidth(gl.Style.GetStrokeWidth(DefaultAxisLineWidth))
r.MoveTo(lineleft, lineheight)
r.LineTo(lineright, lineheight)
r.Stroke()
}