From 9f6c4931ad33d1fe060328b2dba136f3d382e5b7 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 24 Sep 2016 15:02:34 +0200 Subject: wip --- plot.go | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) (limited to 'plot.go') diff --git a/plot.go b/plot.go index e0c778b..7993885 100644 --- a/plot.go +++ b/plot.go @@ -1,5 +1,10 @@ package robo +import ( + "fmt" + "strings" +) + type Plotter interface { Plot() []byte } @@ -8,6 +13,29 @@ type Line []Point type Bezier [4]Point type Circle [3]Point -func (v Line) Draw() []byte { return nil } // MDDDD... -func (v Bezier) Draw() []byte { return nil } // BZ... -func (v Circle) Draw() []byte { return nil } // W... +func (v Line) Plot() []byte { return nil } // MDDDD... +func (v Bezier) Plot() []byte { return nil } // BZ... +func (v Circle) Plot() []byte { return nil } // W... + +func join(p ...Point) string { + path := make([]string, len(p)) + for i, v := range p { + path[i] = v.String() + } + return strings.Join(path, ",") +} + +// ??? +func Draw(p ...Point) string { return fmt.Sprintf("D%v", Path(p)) } +func DrawRelateive(p ...Point) string { return fmt.Sprintf("E%v", Path(p)) } +func Move(p Point) string { return fmt.Sprintf("M%v", p) } +func MoveRelative(p Point) string { return fmt.Sprintf("O%v", p) } + +//func Offset(p Point) string { return "^" + p.String() } +//func LowerLeft(p Point) string { return "\\" + p.String() } +//func UpperRight(p Point) string { return "Z" + p.String() } +func CuttingArea(p Point) string { return "FU" + p.String() } + +//func Calibration(p Point) string { return "TB72" + p.String() } + +func Curve(a int, p ...Point) string { return fmt.Sprintf("Y%d,%v", a, Path(p)) } -- cgit v1.2.3