small refactor
parent
70020cfd75
commit
5a6ea2337f
@ -0,0 +1,72 @@
|
|||||||
|
const state = {
|
||||||
|
position: {
|
||||||
|
x: 0,
|
||||||
|
y: 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function init(width = 4000, height = 4000) {
|
||||||
|
return `IN;IP0,0,${width},${height};SC0,100,0,100;SP1; `
|
||||||
|
}
|
||||||
|
|
||||||
|
function translate(x = 0, y = 0) {
|
||||||
|
state.position.x += x;
|
||||||
|
state.position.y += y;
|
||||||
|
|
||||||
|
clampPosition();
|
||||||
|
|
||||||
|
return `PR${state.position.x},${state.position.y};`
|
||||||
|
}
|
||||||
|
|
||||||
|
function to(x = 0, y = 0) {
|
||||||
|
state.position.x = x;
|
||||||
|
state.position.y = y;
|
||||||
|
|
||||||
|
clampPosition();
|
||||||
|
|
||||||
|
return `PA${state.position.x},${state.position.y};`
|
||||||
|
}
|
||||||
|
|
||||||
|
function circle(radius, resolution = 10) {
|
||||||
|
return `CT${resolution};PA${state.position.x},${state.position.y};PD;CI${radius};PU;`
|
||||||
|
}
|
||||||
|
|
||||||
|
function clampPosition() {
|
||||||
|
if (state.position.x > 100) {
|
||||||
|
console.log("in the borderland");
|
||||||
|
state.position.x = 100;
|
||||||
|
} else if (state.position.x < 0) {
|
||||||
|
console.log("in the borderland");
|
||||||
|
state.position.x = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (state.position.y > 100) {
|
||||||
|
console.log("in the borderland");
|
||||||
|
state.position.y = 100;
|
||||||
|
} else if (state.position.y < 0) {
|
||||||
|
console.log("in the borderland");
|
||||||
|
state.position.y = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function rectangle(width, height) {
|
||||||
|
if (!height) {
|
||||||
|
height = width;
|
||||||
|
}
|
||||||
|
|
||||||
|
return `PD;FT1;RR${width},${height};`
|
||||||
|
}
|
||||||
|
|
||||||
|
function label(string) {
|
||||||
|
return `DT$,0;SI0.5,0.8;LB${string}$;`;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
init,
|
||||||
|
translate,
|
||||||
|
circle,
|
||||||
|
rectangle,
|
||||||
|
to,
|
||||||
|
label
|
||||||
|
}
|
Loading…
Reference in New Issue