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