本文整理汇总了Golang中github.com/skiesel/plot/vg/draw.Canvas.X方法的典型用法代码示例。如果您正苦于以下问题:Golang Canvas.X方法的具体用法?Golang Canvas.X怎么用?Golang Canvas.X使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/skiesel/plot/vg/draw.Canvas
的用法示例。
在下文中一共展示了Canvas.X方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: DrawGlyphBoxes
// DrawGlyphBoxes draws red outlines around the plot's
// GlyphBoxes. This is intended for debugging.
func (p *Plot) DrawGlyphBoxes(c *draw.Canvas) {
c.SetColor(color.RGBA{R: 255, A: 255})
for _, b := range p.GlyphBoxes(p) {
b.Rectangle.Min.X += c.X(b.X)
b.Rectangle.Min.Y += c.Y(b.Y)
c.Stroke(b.Rectangle.Path())
}
}
示例2: Plot
func (g GlyphBoxes) Plot(c draw.Canvas, plt *plot.Plot) {
for _, b := range plt.GlyphBoxes(plt) {
x := c.X(b.X) + b.Rectangle.Min.X
y := c.Y(b.Y) + b.Rectangle.Min.Y
c.StrokeLines(g.LineStyle, []draw.Point{
{x, y},
{x + b.Rectangle.Size().X, y},
{x + b.Rectangle.Size().X, y + b.Rectangle.Size().Y},
{x, y + b.Rectangle.Size().Y},
{x, y},
})
}
}
示例3: leftMost
// leftMost returns the left-most GlyphBox.
func leftMost(c *draw.Canvas, boxes []GlyphBox) GlyphBox {
minx := c.Min.X
l := GlyphBox{}
for _, b := range boxes {
if b.Size().X <= 0 {
continue
}
if x := c.X(b.X) + b.Min.X; x < minx && b.X >= 0 {
minx = x
l = b
}
}
return l
}
示例4: rightMost
// rightMost returns the right-most GlyphBox.
func rightMost(c *draw.Canvas, boxes []GlyphBox) GlyphBox {
maxx := c.Max.X
r := GlyphBox{X: 1}
for _, b := range boxes {
if b.Size().X <= 0 {
continue
}
if x := c.X(b.X) + b.Min.X + b.Size().X; x > maxx && b.X <= 1 {
maxx = x
r = b
}
}
return r
}
示例5: draw
// draw draws the axis along the lower edge of a draw.Canvas.
func (a *horizontalAxis) draw(c draw.Canvas) {
y := c.Min.Y
if a.Label.Text != "" {
y -= a.Label.Font.Extents().Descent
c.FillText(a.Label.TextStyle, c.Center().X, y, -0.5, 0, a.Label.Text)
y += a.Label.Height(a.Label.Text)
}
marks := a.Tick.Marker.Ticks(a.Min, a.Max)
for _, t := range marks {
x := c.X(a.Norm(t.Value))
if !c.ContainsX(x) || t.IsMinor() {
continue
}
c.FillText(a.Tick.Label, x, y, -0.5, 0, t.Label)
}
if len(marks) > 0 {
y += tickLabelHeight(a.Tick.Label, marks)
} else {
y += a.Width / 2
}
if len(marks) > 0 && a.drawTicks() {
len := a.Tick.Length
for _, t := range marks {
x := c.X(a.Norm(t.Value))
if !c.ContainsX(x) {
continue
}
start := t.lengthOffset(len)
c.StrokeLine2(a.Tick.LineStyle, x, y+start, x, y+len)
}
y += len
}
c.StrokeLine2(a.LineStyle, c.Min.X, y, c.Max.X, y)
}
示例6: Transforms
// Transforms returns functions to transfrom
// from the x and y data coordinate system to
// the draw coordinate system of the given
// draw area.
func (p *Plot) Transforms(c *draw.Canvas) (x, y func(float64) vg.Length) {
x = func(x float64) vg.Length { return c.X(p.X.Norm(x)) }
y = func(y float64) vg.Length { return c.Y(p.Y.Norm(y)) }
return
}