const ( // XLeft aligns the left edge of the text with the specified location. XLeft = text.XLeft // XCenter aligns the horizontal center of the text with the specified location. XCenter = text.XCenter // XRight aligns the right edge of the text with the specified location. XRight = text.XRight )
const ( // YTop aligns the top of of the text with the specified location. YTop = text.YTop // YCenter aligns the vertical center of the text with the specified location. YCenter = text.YCenter // YBottom aligns the bottom of the text with the specified location. YBottom = text.YBottom )
Position specifies the text position.
const ( PosLeft = text.PosLeft PosBottom = text.PosBottom PosCenter = text.PosCenter PosTop = text.PosTop PosRight = text.PosRight )
func Formats() []string
Formats returns the sorted list of registered vg formats.
func NewFormattedCanvas(w, h vg.Length, format string) (vg.CanvasWriterTo, error)
NewFormattedCanvas creates a new vg.CanvasWriterTo with the specified image format. Supported formats need to be registered by importing one or more of the following packages:
func RegisterFormat(name string, fn func(w, h vg.Length) vg.CanvasWriterTo)
RegisterFormat registers an image format for use by NewFormattedCanvas. name is the name of the format, like "jpeg" or "png". fn is the construction function to call for the format.
RegisterFormat panics if fn is nil.
BoxGlyph is a glyph that draws a filled square.
type BoxGlyph struct{}
func (BoxGlyph) DrawGlyph(c *Canvas, sty GlyphStyle, pt vg.Point)
DrawGlyph implements the Glyph interface.
A Canvas is a vector graphics canvas along with an associated Rectangle defining a section of the canvas to which drawing should take place.
type Canvas struct { vg.Canvas vg.Rectangle }
func Crop(c Canvas, left, right, bottom, top vg.Length) Canvas
Crop returns a new Canvas corresponding to the Canvas c with the given lengths added to the minimum and maximum x and y values of the Canvas's Rectangle. Note that cropping the right and top sides of the canvas requires specifying negative values of right and top.
▹ Example (SplitHorizontal)
▹ Example (SplitVertical)
func New(c vg.CanvasSizer) Canvas
New returns a new (bounded) draw.Canvas.
func NewCanvas(c vg.Canvas, w, h vg.Length) Canvas
NewCanvas returns a new (bounded) draw.Canvas of the given size.
func (c *Canvas) Center() vg.Point
Center returns the center point of the area
func (c *Canvas) ClipLinesX(lines ...[]vg.Point) (clipped [][]vg.Point)
ClipLinesX returns a slice of lines that represent the given line clipped in the X direction.
func (c *Canvas) ClipLinesXY(lines ...[]vg.Point) [][]vg.Point
ClipLinesXY returns a slice of lines that represent the given line clipped in both X and Y directions.
func (c *Canvas) ClipLinesY(lines ...[]vg.Point) (clipped [][]vg.Point)
ClipLinesY returns a slice of lines that represent the given line clipped in the Y direction.
func (c *Canvas) ClipPolygonX(pts []vg.Point) []vg.Point
ClipPolygonX returns a slice of lines that represent the given polygon clipped in the X direction.
func (c *Canvas) ClipPolygonXY(pts []vg.Point) []vg.Point
ClipPolygonXY returns a slice of lines that represent the given polygon clipped in both X and Y directions.
func (c *Canvas) ClipPolygonY(pts []vg.Point) []vg.Point
ClipPolygonY returns a slice of lines that represent the given polygon clipped in the Y direction.
func (c *Canvas) Contains(p vg.Point) bool
Contains returns true if the Canvas contains the point.
func (c *Canvas) ContainsX(x vg.Length) bool
ContainsX returns true if the Canvas contains the x coordinate.
func (c *Canvas) ContainsY(y vg.Length) bool
ContainsY returns true if the Canvas contains the y coordinate.
func (c *Canvas) DrawGlyph(sty GlyphStyle, pt vg.Point)
DrawGlyph draws the given glyph to the draw area. If the point is not within the Canvas or the sty.Shape is nil then nothing is drawn.
func (c *Canvas) DrawGlyphNoClip(sty GlyphStyle, pt vg.Point)
DrawGlyphNoClip draws the given glyph to the draw area. If the sty.Shape is nil then nothing is drawn.
func (c *Canvas) FillPolygon(clr color.Color, pts []vg.Point)
FillPolygon fills a polygon with the given color.
func (c *Canvas) FillText(sty TextStyle, pt vg.Point, txt string)
FillText fills lines of text in the draw area. pt specifies the location where the text is to be drawn.
func (c *Canvas) SetLineStyle(sty LineStyle)
SetLineStyle sets the current line style
func (c *Canvas) StrokeLine2(sty LineStyle, x0, y0, x1, y1 vg.Length)
StrokeLine2 draws a line between two points in the given Canvas.
func (c *Canvas) StrokeLines(sty LineStyle, lines ...[]vg.Point)
StrokeLines draws a line connecting a set of points in the given Canvas.
func (c *Canvas) X(x float64) vg.Length
X returns the value of x, given in the unit range, in the drawing coordinates of this draw area. A value of 0, for example, will return the minimum x value of the draw area and a value of 1 will return the maximum.
func (c *Canvas) Y(y float64) vg.Length
Y returns the value of x, given in the unit range, in the drawing coordinates of this draw area. A value of 0, for example, will return the minimum y value of the draw area and a value of 1 will return the maximum.
CircleGlyph is a glyph that draws a solid circle.
type CircleGlyph struct{}
func (CircleGlyph) DrawGlyph(c *Canvas, sty GlyphStyle, pt vg.Point)
DrawGlyph implements the GlyphDrawer interface.
CrossGlyph is a glyph that draws a big X.
type CrossGlyph struct{}
func (CrossGlyph) DrawGlyph(c *Canvas, sty GlyphStyle, pt vg.Point)
DrawGlyph implements the Glyph interface.
A GlyphDrawer wraps the DrawGlyph function.
type GlyphDrawer interface { // DrawGlyph draws the glyph at the given // point, with the given color and radius. DrawGlyph(*Canvas, GlyphStyle, vg.Point) }
A GlyphStyle specifies the look of a glyph used to draw a point on a plot.
type GlyphStyle struct { // Color is the color used to draw the glyph. color.Color // Radius specifies the size of the glyph's radius. Radius vg.Length // Shape draws the shape of the glyph. Shape GlyphDrawer }
func (g GlyphStyle) Rectangle() vg.Rectangle
Rectangle returns the rectangle surrounding this glyph, assuming that it is drawn centered at 0,0
LineStyle describes what a line will look like.
type LineStyle struct { // Color is the color of the line. Color color.Color // Width is the width of the line. Width vg.Length Dashes []vg.Length DashOffs vg.Length }
PlainTextHandler is a text/plain handler.
type PlainTextHandler = text.Plain
PlusGlyph is a glyph that draws a plus sign
type PlusGlyph struct{}
func (PlusGlyph) DrawGlyph(c *Canvas, sty GlyphStyle, pt vg.Point)
DrawGlyph implements the Glyph interface.
PyramidGlyph is a glyph that draws a filled triangle.
type PyramidGlyph struct{}
func (PyramidGlyph) DrawGlyph(c *Canvas, sty GlyphStyle, pt vg.Point)
DrawGlyph implements the Glyph interface.
RingGlyph is a glyph that draws the outline of a circle.
type RingGlyph struct{}
func (RingGlyph) DrawGlyph(c *Canvas, sty GlyphStyle, pt vg.Point)
DrawGlyph implements the Glyph interface.
SquareGlyph is a glyph that draws the outline of a square.
type SquareGlyph struct{}
func (SquareGlyph) DrawGlyph(c *Canvas, sty GlyphStyle, pt vg.Point)
DrawGlyph implements the Glyph interface.
type TextHandler = text.Handler
type TextStyle = text.Style
Tiles creates regular subcanvases from a Canvas.
type Tiles struct { // Cols and Rows specify the number of rows and columns of tiles. Cols, Rows int // PadTop, PadBottom, PadRight, and PadLeft specify the padding // on the corresponding side of each tile. PadTop, PadBottom, PadRight, PadLeft vg.Length // PadX and PadY specify the padding between columns and rows // of tiles respectively.. PadX, PadY vg.Length }
func (ts Tiles) At(c Canvas, x, y int) Canvas
At returns the subcanvas within c that corresponds to the tile at column x, row y.
TriangleGlyph is a glyph that draws the outline of a triangle.
type TriangleGlyph struct{}
func (TriangleGlyph) DrawGlyph(c *Canvas, sty GlyphStyle, pt vg.Point)
DrawGlyph implements the Glyph interface.
XAlignment specifies text alignment in the X direction. Three preset options are available, but an arbitrary alignment can also be specified using XAlignment(desired number).
type XAlignment = text.XAlignment
YAlignment specifies text alignment in the Y direction. Three preset options are available, but an arbitrary alignment can also be specified using YAlignment(desired number).
type YAlignment = text.YAlignment