@thi.ng/axidraw
Version:
Minimal AxiDraw plotter/drawing machine controller for Node.js
30 lines (29 loc) • 645 B
JavaScript
import { map } from "@thi.ng/transducers/map";
import { normRange } from "@thi.ng/transducers/norm-range";
import { cartesian2 } from "@thi.ng/vectors/cartesian";
import { DOWN, MOVE, UP } from "./commands.js";
const registrationMark = ([x, y], size = 5, r = size * 0.75) => [
// crosshair
// horizontal
MOVE([x - size, y]),
DOWN(),
MOVE([x + size, y]),
UP(),
// vertical
MOVE([x, y - size]),
DOWN(),
MOVE([x, y + size]),
UP(),
// circle
MOVE([x + r, y]),
DOWN(),
...map(
(t) => MOVE(cartesian2([], [r, t * Math.PI * 2], [x, y])),
normRange(40)
),
UP(),
MOVE([x, y])
];
export {
registrationMark
};