Source File
vg.go
Belonging Package
gonum.org/v1/plot/vg
// Copyright ©2015 The Gonum Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.// Package vg defines an interface for drawing 2D vector graphics.// This package is designed with the hope that many different// vector graphics back-ends can conform to the interface.package vg // import "gonum.org/v1/plot/vg"import ()// A Canvas is the main drawing interface for 2D vector// graphics.// The origin is in the bottom left corner.type Canvas interface {// SetLineWidth sets the width of stroked paths.// If the width is not positive then stroked lines// are not drawn.//// The initial line width is 1 point.SetLineWidth(Length)// SetLineDash sets the dash pattern for lines.// The pattern slice specifies the lengths of// alternating dashes and gaps, and the offset// specifies the distance into the dash pattern// to start the dash.//// The initial dash pattern is a solid line.SetLineDash(pattern []Length, offset Length)// SetColor sets the current drawing color.// Note that fill color and stroke color are// the same, so if you want different fill// and stroke colors then you must set a color,// draw fills, set a new color and then draw lines.//// The initial color is black.// If SetColor is called with a nil color then black is used.SetColor(color.Color)// Rotate applies a rotation transform to the context.// The parameter is specified in radians.Rotate(rad float64)// Translate applies a translational transform// to the context.Translate(pt Point)// Scale applies a scaling transform to the// context.Scale(x, y float64)// Push saves the current line width, the// current dash pattern, the current// transforms, and the current color// onto a stack so that the state can later// be restored by calling Pop().Push()// Pop restores the context saved by the// corresponding call to Push().Pop()// Stroke strokes the given path.Stroke(Path)// Fill fills the given path.Fill(Path)// FillString fills in text at the specified// location using the given font.// If the font size is zero, the text is not drawn.FillString(f font.Face, pt Point, text string)// DrawImage draws the image, scaled to fit// the destination rectangle.DrawImage(rect Rectangle, img image.Image)}// CanvasSizer is a Canvas with a defined size.type CanvasSizer interface {CanvasSize() (x, y Length)}// CanvasWriterTo is a CanvasSizer with a WriteTo method.type CanvasWriterTo interface {CanvasSizerio.WriterTo}// Initialize sets all of the canvas's values to their// initial values.func ( Canvas) {.SetLineWidth(Points(1)).SetLineDash([]Length{}, 0).SetColor(color.Black)}type Path []PathComp// Move moves the current location of the path to// the given point.func ( *Path) ( Point) {* = append(*, PathComp{Type: MoveComp, Pos: })}// Line draws a line from the current point to the// given point.func ( *Path) ( Point) {* = append(*, PathComp{Type: LineComp, Pos: })}// Arc adds an arc to the path defined by the center// point of the arc's circle, the radius of the circle// and the start and sweep angles.func ( *Path) ( Point, Length, , float64) {* = append(*, PathComp{Type: ArcComp,Pos: ,Radius: ,Start: ,Angle: ,})}// QuadTo adds a quadratic curve element to the path,// given by the control point p1 and end point pt.func ( *Path) (, Point) {* = append(*, PathComp{Type: CurveComp, Pos: , Control: []Point{}})}// CubeTo adds a cubic curve element to the path,// given by the control points p1 and p2 and the end point pt.func ( *Path) (, , Point) {* = append(*, PathComp{Type: CurveComp, Pos: , Control: []Point{, }})}// Close closes the path by connecting the current// location to the start location with a line.func ( *Path) () {* = append(*, PathComp{Type: CloseComp})}// Constants that tag the type of each path// component.const (MoveComp = iotaLineCompArcCompCurveCompCloseComp)// A PathComp is a component of a path structure.type PathComp struct {// Type is the type of a particluar component.// Based on the type, each of the following// fields may have a different meaning or may// be meaningless.Type int// The Pos field is used as the destination// of a MoveComp or LineComp and is the center// point of an ArcComp. It is not used in// the CloseComp.Pos Point// Control is one or two intermediate points// for a CurveComp used by QuadTo and CubeTo.Control []Point// Radius is only used for ArcComps, it is// the radius of the circle defining the arc.Radius Length// Start and Angle are only used for ArcComps.// They define the start angle and sweep angle of// the arc around the circle. The units of the// angle are radians.Start, Angle float64}
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |