Versions in this module Expand all Collapse all v0 v0.1.0 Oct 29, 2026 Changes in this version + const MaxDx + var ButtCap CapFunc = func(p Adder, a, eNorm fixed.Point26_6) + var CubicCap CapFunc = func(p Adder, a, eNorm fixed.Point26_6) + var CubicGap GapFunc = func(p Adder, a, tNorm, lNorm fixed.Point26_6) + var FlatGap GapFunc = func(p Adder, a, tNorm, lNorm fixed.Point26_6) + var Identity = Matrix2D + var QuadraticCap CapFunc = func(p Adder, a, eNorm fixed.Point26_6) + var QuadraticGap GapFunc = func(p Adder, a, tNorm, lNorm fixed.Point26_6) + var RoundCap CapFunc = func(p Adder, a, eNorm fixed.Point26_6) + var RoundGap GapFunc = func(p Adder, a, tNorm, lNorm fixed.Point26_6) + var SquareCap CapFunc = func(p Adder, a, eNorm fixed.Point26_6) + func AddArc(points []float64, cx, cy, px, py float64, p Adder) (lx, ly float64) + func AddCircle(cx, cy, r float64, p Adder) + func AddEllipse(cx, cy, rx, ry, rot float64, p Adder) + func AddRect(minX, minY, maxX, maxY, rot float64, p Adder) + func AddRoundRect(minX, minY, maxX, maxY, rx, ry, rot float64, gf GapFunc, p Adder) + func ApplyOpacity(c color.Color, opacity float64) color.NRGBA + func CalcIntersect(a1, a2, b1, b2 fixed.Point26_6) (x fixed.Point26_6) + func CircleCircleIntersection(ct, cl fixed.Point26_6, rt, rl fixed.Int26_6) (xt1, xt2 fixed.Point26_6, intersects bool) + func ClosestPortside(bow, stern, p1, p2 fixed.Point26_6, isIntersecting bool) (xt fixed.Point26_6, intersects bool) + func CubeTo(ax, ay, bx, by, cx, cy, dx, dy float32, LineTo func(ex, ey float32)) + func DotProd(p fixed.Point26_6, q fixed.Point26_6) fixed.Int52_12 + func FindEllipseCenter(ra, rb *float64, rotX, startX, startY, endX, endY float64, ...) (cx, cy float64) + func GapToCap(p Adder, a, eNorm fixed.Point26_6, gf GapFunc) + func Invert(v fixed.Point26_6) fixed.Point26_6 + func Length(v fixed.Point26_6) fixed.Int26_6 + func QuadTo(ax, ay, bx, by, cx, cy float32, LineTo func(dx, dy float32)) + func RadCurvature(p0, p1, p2 fixed.Point26_6, dm fixed.Int52_12) fixed.Int26_6 + func RayCircleIntersection(s1, s2, c fixed.Point26_6, r fixed.Int26_6) (x fixed.Point26_6, intersects bool) + func RayCircleIntersectionF(s1X, s1Y, s2X, s2Y, cX, cY, r float64) (x, y float64, intersects bool) + func ToFixedP(x, y float64) (p fixed.Point26_6) + func ToLength(p fixed.Point26_6, ln fixed.Int26_6) (q fixed.Point26_6) + type Adder interface + CubeBezier func(b, c, d fixed.Point26_6) + Line func(b fixed.Point26_6) + QuadBezier func(b, c fixed.Point26_6) + Start func(a fixed.Point26_6) + Stop func(closeLoop bool) + type C2Point struct + LNorm fixed.Point26_6 + LTan fixed.Point26_6 + P fixed.Point26_6 + RL fixed.Int26_6 + RT fixed.Int26_6 + TNorm fixed.Point26_6 + TTan fixed.Point26_6 + type CapFunc func(p Adder, a, eNorm fixed.Point26_6) + type ClipImage struct + func (c *ClipImage) At(x, y int) color.Color + type ColorFunc func(x, y int) color.Color + type ColorFuncImage struct + func (c *ColorFuncImage) At(x, y int) color.Color + type Dasher struct + DashOffset fixed.Int26_6 + Dashes []fixed.Int26_6 + func NewDasher(width, height int, scanner Scanner) *Dasher + func (r *Dasher) CubeBezier(b, c, d fixed.Point26_6) + func (r *Dasher) Line(b fixed.Point26_6) + func (r *Dasher) QuadBezier(b, c fixed.Point26_6) + func (r *Dasher) SetStroke(width, miterLimit fixed.Int26_6, capL, capT CapFunc, gp GapFunc, jm JoinMode, ...) + func (r *Dasher) Start(a fixed.Point26_6) + func (r *Dasher) Stop(isClosed bool) + type Filler struct + func NewFiller(width, height int, scanner Scanner) *Filler + func (r *Filler) Clear() + func (r *Filler) CubeBezier(b, c, d fixed.Point26_6) + func (r *Filler) CubeBezierF(sgm Rasterx, b, c, d fixed.Point26_6) + func (r *Filler) Line(b fixed.Point26_6) + func (r *Filler) QuadBezier(b, c fixed.Point26_6) + func (r *Filler) QuadBezierF(sgm Rasterx, b, c fixed.Point26_6) + func (r *Filler) SetBounds(width, height int) + func (r *Filler) Start(a fixed.Point26_6) + func (r *Filler) Stop(isClosed bool) + type GapFunc func(p Adder, a, tNorm, lNorm fixed.Point26_6) + type GradStop struct + Offset float64 + Opacity float64 + StopColor color.Color + type Gradient struct + Bounds struct{ ... } + IsRadial bool + Matrix Matrix2D + Points [5]float64 + Spread SpreadMethod + Stops []GradStop + Units GradientUnits + func (g *Gradient) GetColorFunction(opacity float64) interface{} + func (g *Gradient) GetColorFunctionUS(opacity float64, objMatrix Matrix2D) interface{} + type GradientUnits byte + const ObjectBoundingBox + const UserSpaceOnUse + type JoinMode uint8 + const Arc + const ArcClip + const Bevel + const Miter + const MiterClip + const Round + type Matrix2D struct + A float64 + B float64 + C float64 + D float64 + E float64 + F float64 + func (a Matrix2D) Invert() Matrix2D + func (a Matrix2D) Mult(b Matrix2D) Matrix2D + func (a Matrix2D) Rotate(theta float64) Matrix2D + func (a Matrix2D) Scale(x, y float64) Matrix2D + func (a Matrix2D) SkewX(theta float64) Matrix2D + func (a Matrix2D) SkewY(theta float64) Matrix2D + func (a Matrix2D) TFixed(x fixed.Point26_6) (y fixed.Point26_6) + func (a Matrix2D) Transform(x1, y1 float64) (x2, y2 float64) + func (a Matrix2D) TransformVector(x1, y1 float64) (x2, y2 float64) + func (a Matrix2D) Translate(x, y float64) Matrix2D + type MatrixAdder struct + M Matrix2D + func (t *MatrixAdder) CubeBezier(b, c, d fixed.Point26_6) + func (t *MatrixAdder) Line(b fixed.Point26_6) + func (t *MatrixAdder) QuadBezier(b, c fixed.Point26_6) + func (t *MatrixAdder) Reset() + func (t *MatrixAdder) Start(a fixed.Point26_6) + type Path []fixed.Int26_6 + func (p *Path) Clear() + func (p *Path) CubeBezier(b, c, d fixed.Point26_6) + func (p *Path) Line(b fixed.Point26_6) + func (p *Path) QuadBezier(b, c fixed.Point26_6) + func (p *Path) Start(a fixed.Point26_6) + func (p *Path) Stop(closeLoop bool) + func (p Path) AddTo(q Adder) + func (p Path) String() string + func (p Path) ToSVGPath() string + type PathCommand fixed.Int26_6 + const PathClose + const PathCubicTo + const PathLineTo + const PathMoveTo + const PathQuadTo + type Rasterx interface + type Scanner interface + Clear func() + Draw func() + GetPathExtent func() fixed.Rectangle26_6 + Line func(b fixed.Point26_6) + SetBounds func(w, h int) + SetClip func(rect image.Rectangle) + SetColor func(color interface{}) + SetWinding func(useNonZeroWinding bool) + Start func(a fixed.Point26_6) + type ScannerGV struct + Dest draw.Image + Offset image.Point + Source image.Image + Targ image.Rectangle + func NewScannerGV(width, height int, dest draw.Image, targ image.Rectangle) *ScannerGV + func (s *ScannerGV) Clear() + func (s *ScannerGV) Draw() + func (s *ScannerGV) GetPathExtent() fixed.Rectangle26_6 + func (s *ScannerGV) Line(b fixed.Point26_6) + func (s *ScannerGV) SetBounds(width, height int) + func (s *ScannerGV) SetClip(rect image.Rectangle) + func (s *ScannerGV) SetColor(clr interface{}) + func (s *ScannerGV) SetWinding(useNonZeroWinding bool) + func (s *ScannerGV) Start(a fixed.Point26_6) + type SpreadMethod byte + const PadSpread + const ReflectSpread + const RepeatSpread + type Stroker struct + CapL CapFunc + CapT CapFunc + JoinGap GapFunc + JoinMode JoinMode + func NewStroker(width, height int, scanner Scanner) *Stroker + func (r *Stroker) CalcEndCurvature(p0, p1, p2, q0, q1, q2 fixed.Point26_6, dm fixed.Int52_12, calcRadCuve bool) + func (r *Stroker) CubeBezier(b, c, d fixed.Point26_6) + func (r *Stroker) Joiner(p C2Point) + func (r *Stroker) Line(b fixed.Point26_6) + func (r *Stroker) LineSeg(sgm Rasterx, b fixed.Point26_6) + func (r *Stroker) QuadBezier(b, c fixed.Point26_6) + func (r *Stroker) SetStroke(width, miterLimit fixed.Int26_6, capL, capT CapFunc, gp GapFunc, jm JoinMode) + func (r *Stroker) Start(a fixed.Point26_6) + func (r *Stroker) Stop(isClosed bool)