func (c *Canvas) SetLineDash(ds []vg.Length, offs vg.Length) { dashes := make([]float64, len(ds)) for i, d := range ds { dashes[i] = d.Dots(c) } c.gc.SetLineDash(dashes, offs.Dots(c)) }
func (c *Canvas) FillString(font vg.Font, x, y vg.Length, str string) { c.gc.Save() defer c.gc.Restore() data, ok := fontMap[font.Name()] if !ok { panic(fmt.Sprintf("Font name %s is unknown", font.Name())) } if !registeredFont[font.Name()] { draw2d.RegisterFont(data, font.Font()) registeredFont[font.Name()] = true } c.gc.SetFontData(data) c.gc.SetFontSize(font.Size.Points()) c.gc.Translate(x.Dots(c), y.Dots(c)) c.gc.Scale(1, -1) c.gc.FillString(str) }
// unit returns a pdf.Unit, converted from a vg.Length. func unit(l vg.Length) pdf.Unit { return pdf.Unit(l.Points()) * pdf.Pt }
func (c *Canvas) Translate(x, y vg.Length) { c.gc.Translate(x.Dots(c), y.Dots(c)) }
func (c *Canvas) SetLineWidth(w vg.Length) { c.width = w c.gc.SetLineWidth(w.Dots(c)) }