aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-09-24 15:02:34 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-09-24 15:02:34 +0200
commit9f6c4931ad33d1fe060328b2dba136f3d382e5b7 (patch)
treee1bd945000e83382b60312143d0b313ee33112cf
parent13449c468512cd81ec5c05bf77655c22a17b39f0 (diff)
wip
-rw-r--r--plot.go34
-rw-r--r--plot_test.go11
2 files changed, 42 insertions, 3 deletions
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)) }
diff --git a/plot_test.go b/plot_test.go
new file mode 100644
index 0000000..873a6d2
--- /dev/null
+++ b/plot_test.go
@@ -0,0 +1,11 @@
+package robo
+
+import "testing"
+
+func TestDraw(t *testing.T) {
+ p := Point{1, 3}
+ t.Log(Draw(p))
+ t.Log(Draw(p, p))
+ t.Log(Curve(10, p, p))
+ t.Log(Move(p))
+}