本文整理汇总了Golang中github.com/skiesel/plot/vg/draw.Canvas.Y方法的典型用法代码示例。如果您正苦于以下问题:Golang Canvas.Y方法的具体用法?Golang Canvas.Y怎么用?Golang Canvas.Y使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/skiesel/plot/vg/draw.Canvas
的用法示例。
在下文中一共展示了Canvas.Y方法的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: bottomMost
// bottomMost returns the bottom-most GlyphBox.
func bottomMost(c *draw.Canvas, boxes []GlyphBox) GlyphBox {
miny := c.Min.Y
l := GlyphBox{}
for _, b := range boxes {
if b.Size().Y <= 0 {
continue
}
if y := c.Y(b.Y) + b.Min.Y; y < miny && b.Y >= 0 {
miny = y
l = b
}
}
return l
}
示例4: topMost
// topMost returns the top-most GlyphBox.
func topMost(c *draw.Canvas, boxes []GlyphBox) GlyphBox {
maxy := c.Max.Y
t := GlyphBox{Y: 1}
for _, b := range boxes {
if b.Size().Y <= 0 {
continue
}
if y := c.Y(b.Y) + b.Min.Y + b.Size().Y; y > maxy && b.Y <= 1 {
maxy = y
t = b
}
}
return t
}
示例5: draw
// draw draws the axis along the left side of a draw.Canvas.
func (a *verticalAxis) draw(c draw.Canvas) {
x := c.Min.X
if a.Label.Text != "" {
x += a.Label.Height(a.Label.Text)
c.Push()
c.Rotate(math.Pi / 2)
c.FillText(a.Label.TextStyle, c.Center().Y, -x, -0.5, 0, a.Label.Text)
c.Pop()
x += -a.Label.Font.Extents().Descent
}
marks := a.Tick.Marker.Ticks(a.Min, a.Max)
if w := tickLabelWidth(a.Tick.Label, marks); len(marks) > 0 && w > 0 {
x += w
}
major := false
for _, t := range marks {
y := c.Y(a.Norm(t.Value))
if !c.ContainsY(y) || t.IsMinor() {
continue
}
c.FillText(a.Tick.Label, x, y, -1, -0.5, t.Label)
major = true
}
if major {
x += a.Tick.Label.Width(" ")
}
if a.drawTicks() && len(marks) > 0 {
len := a.Tick.Length
for _, t := range marks {
y := c.Y(a.Norm(t.Value))
if !c.ContainsY(y) {
continue
}
start := t.lengthOffset(len)
c.StrokeLine2(a.Tick.LineStyle, x+start, y, x+len, y)
}
x += len
}
c.StrokeLine2(a.LineStyle, x, c.Min.Y, x, c.Max.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
}