plot: gonum.org/v1/plot/vg/draw Index | Examples | Files

package draw

import "gonum.org/v1/plot/vg/draw"

Index

Examples

Package Files

canvas.go

func NewFormattedCanvas Uses

func NewFormattedCanvas(w, h vg.Length, format string) (vg.CanvasWriterTo, error)

NewFormattedCanvas creates a new vg.CanvasWriterTo with the specified image format.

Supported formats are:

eps, jpg|jpeg, pdf, png, svg, and tif|tiff.

type BoxGlyph Uses

type BoxGlyph struct{}

BoxGlyph is a glyph that draws a filled square.

func (BoxGlyph) DrawGlyph Uses

func (BoxGlyph) DrawGlyph(c *Canvas, sty GlyphStyle, pt vg.Point)

DrawGlyph implements the Glyph interface.

type Canvas Uses

type Canvas struct {
    vg.Canvas
    vg.Rectangle
}

A Canvas is a vector graphics canvas along with an associated Rectangle defining a section of the canvas to which drawing should take place.

func Crop Uses

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.

Code:

package main

import (
    "fmt"

    "gonum.org/v1/plot/vg"
    "gonum.org/v1/plot/vg/draw"
)

// SplitHorizontal returns the left and right portions of c after splitting it
// along a vertical line distance x from the left of c.
func SplitHorizontal(c draw.Canvas, x vg.Length) (left, right draw.Canvas) {
    return draw.Crop(c, 0, c.Min.X-c.Max.X+x, 0, 0), draw.Crop(c, x, 0, 0, 0)
}

func main() {
    var c draw.Canvas
    // Split c along a vertical line centered on the canvas.
    left, right := SplitHorizontal(c, c.Size().X/2)
    fmt.Println(left.Rectangle.Size(), right.Rectangle.Size())
}

Code:

package main

import (
    "fmt"

    "gonum.org/v1/plot/vg"
    "gonum.org/v1/plot/vg/draw"
)

// SplitVertical returns the lower and upper portions of c after
// splitting it along a horizontal line distance y from the
// bottom of c.
func SplitVertical(c draw.Canvas, y vg.Length) (lower, upper draw.Canvas) {
    return draw.Crop(c, 0, 0, 0, c.Min.Y-c.Max.Y+y), draw.Crop(c, 0, 0, y, 0)
}

func main() {
    var c draw.Canvas
    // Split c along a horizontal line centered on the canvas.
    bottom, top := SplitHorizontal(c, c.Size().Y/2)
    fmt.Println(bottom.Rectangle.Size(), top.Rectangle.Size())
}

func New Uses

func New(c vg.CanvasSizer) Canvas

New returns a new (bounded) draw.Canvas.

func NewCanvas Uses

func NewCanvas(c vg.Canvas, w, h vg.Length) Canvas

NewCanvas returns a new (bounded) draw.Canvas of the given size.

func (*Canvas) Center Uses

func (c *Canvas) Center() vg.Point

Center returns the center point of the area

func (*Canvas) ClipLinesX Uses

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 (*Canvas) ClipLinesXY Uses

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 (*Canvas) ClipLinesY Uses

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 (*Canvas) ClipPolygonX Uses

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 (*Canvas) ClipPolygonXY Uses

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 (*Canvas) ClipPolygonY Uses

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 (*Canvas) Contains Uses

func (c *Canvas) Contains(p vg.Point) bool

Contains returns true if the Canvas contains the point.

func (*Canvas) ContainsX Uses

func (c *Canvas) ContainsX(x vg.Length) bool

ContainsX returns true if the Canvas contains the x coordinate.

func (*Canvas) ContainsY Uses

func (c *Canvas) ContainsY(y vg.Length) bool

ContainsY returns true if the Canvas contains the y coordinate.

func (*Canvas) DrawGlyph Uses

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 (*Canvas) DrawGlyphNoClip Uses

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 (*Canvas) FillPolygon Uses

func (c *Canvas) FillPolygon(clr color.Color, pts []vg.Point)

FillPolygon fills a polygon with the given color.

func (*Canvas) FillText Uses

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 (*Canvas) SetLineStyle Uses

func (c *Canvas) SetLineStyle(sty LineStyle)

SetLineStyle sets the current line style

func (*Canvas) StrokeLine2 Uses

func (c *Canvas) StrokeLine2(sty LineStyle, x0, y0, x1, y1 vg.Length)

StrokeLine2 draws a line between two points in the given Canvas.

func (*Canvas) StrokeLines Uses

func (c *Canvas) StrokeLines(sty LineStyle, lines ...[]vg.Point)

StrokeLines draws a line connecting a set of points in the given Canvas.

func (*Canvas) X Uses

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 (*Canvas) Y Uses

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.

type CircleGlyph Uses

type CircleGlyph struct{}

CircleGlyph is a glyph that draws a solid circle.

func (CircleGlyph) DrawGlyph Uses

func (CircleGlyph) DrawGlyph(c *Canvas, sty GlyphStyle, pt vg.Point)

DrawGlyph implements the GlyphDrawer interface.

type CrossGlyph Uses

type CrossGlyph struct{}

CrossGlyph is a glyph that draws a big X.

func (CrossGlyph) DrawGlyph Uses

func (CrossGlyph) DrawGlyph(c *Canvas, sty GlyphStyle, pt vg.Point)

DrawGlyph implements the Glyph interface.

type GlyphDrawer Uses

type GlyphDrawer interface {
    // DrawGlyph draws the glyph at the given
    // point, with the given color and radius.
    DrawGlyph(*Canvas, GlyphStyle, vg.Point)
}

A GlyphDrawer wraps the DrawGlyph function.

type GlyphStyle Uses

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
}

A GlyphStyle specifies the look of a glyph used to draw a point on a plot.

func (GlyphStyle) Rectangle Uses

func (g GlyphStyle) Rectangle() vg.Rectangle

Rectangle returns the rectangle surrounding this glyph, assuming that it is drawn centered at 0,0

type LineStyle Uses

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
}

LineStyle describes what a line will look like.

type PlusGlyph Uses

type PlusGlyph struct{}

PlusGlyph is a glyph that draws a plus sign

func (PlusGlyph) DrawGlyph Uses

func (PlusGlyph) DrawGlyph(c *Canvas, sty GlyphStyle, pt vg.Point)

DrawGlyph implements the Glyph interface.

type PyramidGlyph Uses

type PyramidGlyph struct{}

PyramidGlyph is a glyph that draws a filled triangle.

func (PyramidGlyph) DrawGlyph Uses

func (PyramidGlyph) DrawGlyph(c *Canvas, sty GlyphStyle, pt vg.Point)

DrawGlyph implements the Glyph interface.

type RingGlyph Uses

type RingGlyph struct{}

RingGlyph is a glyph that draws the outline of a circle.

func (RingGlyph) DrawGlyph Uses

func (RingGlyph) DrawGlyph(c *Canvas, sty GlyphStyle, pt vg.Point)

DrawGlyph implements the Glyph interface.

type SquareGlyph Uses

type SquareGlyph struct{}

SquareGlyph is a glyph that draws the outline of a square.

func (SquareGlyph) DrawGlyph Uses

func (SquareGlyph) DrawGlyph(c *Canvas, sty GlyphStyle, pt vg.Point)

DrawGlyph implements the Glyph interface.

type TextStyle Uses

type TextStyle struct {
    // Color is the text color.
    Color color.Color

    // Font is the font description.
    Font vg.Font

    // Rotation is the text rotation in radians, performed around the axis
    // defined by XAlign and YAlign.
    Rotation float64

    // XAlign and YAlign specify the alignment of the text.
    XAlign XAlignment
    YAlign YAlignment
}

TextStyle describes what text will look like.

func (TextStyle) Height Uses

func (sty TextStyle) Height(txt string) vg.Length

Height returns the height of the text when using the given font before any text rotation is applied.

func (TextStyle) Rectangle Uses

func (sty TextStyle) Rectangle(txt string) vg.Rectangle

Rectangle returns a rectangle giving the bounds of this text assuming that it is drawn at (0, 0).

func (TextStyle) Width Uses

func (sty TextStyle) Width(txt string) (max vg.Length)

Width returns the width of lines of text when using the given font before any text rotation is applied.

type Tiles Uses

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
}

Tiles creates regular subcanvases from a Canvas.

func (Tiles) At Uses

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.

type TriangleGlyph Uses

type TriangleGlyph struct{}

TriangleGlyph is a glyph that draws the outline of a triangle.

func (TriangleGlyph) DrawGlyph Uses

func (TriangleGlyph) DrawGlyph(c *Canvas, sty GlyphStyle, pt vg.Point)

DrawGlyph implements the Glyph interface.

type XAlignment Uses

type XAlignment float64

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).

const (
    // XLeft aligns the left edge of the text with the specified location.
    XLeft XAlignment = 0
    // XCenter aligns the horizontal center of the text with the specified location.
    XCenter XAlignment = -0.5
    // XRight aligns the right edge of the text with the specified location.
    XRight XAlignment = -1
)

type YAlignment Uses

type YAlignment float64

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).

const (
    // YTop aligns the top of of the text with the specified location.
    YTop YAlignment = -1
    // YCenter aligns the vertical center of the text with the specified location.
    YCenter YAlignment = -0.5
    // YBottom aligns the bottom of the text with the specified location.
    YBottom YAlignment = 0
)

Package draw imports 9 packages (graph) and is imported by 40 packages. Updated 2018-11-27. Refresh now. Tools for package owners.