drawLines = () => {
const maxWidth = maxLineWidth - padding;
ctx.fillStyle = palette.fg;
ctx.beginPath();
data.forEach((l) => {
const {
p: [u1, v1],
w,
m
} = l;
const x = CSMath.lerp(maxWidth / 2, width - maxWidth / 2, u1);
const y = CSMath.lerp(0, height, v1);
const breakY = CSMath.lerp(breakSize / 2, height - breakSize / 2, m);
const lineWidth = CSMath.lerp(maxWidth / 10, maxWidth, w);
const breakLineWidth = CSMath.lerp(maxWidth, maxWidth / 8, w);
ctx.rect(x - lineWidth / 2, y, lineWidth, breakY - breakSize / 2);
ctx.rect(
x - breakLineWidth / 2,
breakY - breakSize / 2,
breakLineWidth,
breakSize
);
ctx.rect(
x - lineWidth / 2,
breakY + breakSize / 2,
lineWidth,
height - (breakY + breakSize / 2)
);
});
ctx.fill();
}