mirror of
https://github.com/documenso/documenso.git
synced 2025-11-13 08:13:56 +10:00
30 lines
691 B
TypeScript
30 lines
691 B
TypeScript
export const average = (a: number, b: number) => (a + b) / 2;
|
|
|
|
export const getSvgPathFromStroke = (points: number[][], closed = true) => {
|
|
const len = points.length;
|
|
|
|
if (len < 4) {
|
|
return ``;
|
|
}
|
|
|
|
let a = points[0];
|
|
let b = points[1];
|
|
const c = points[2];
|
|
|
|
let result = `M${a[0].toFixed(2)},${a[1].toFixed(2)} Q${b[0].toFixed(2)},${b[1].toFixed(
|
|
2,
|
|
)} ${average(b[0], c[0]).toFixed(2)},${average(b[1], c[1]).toFixed(2)} T`;
|
|
|
|
for (let i = 2, max = len - 1; i < max; i++) {
|
|
a = points[i];
|
|
b = points[i + 1];
|
|
result += `${average(a[0], b[0]).toFixed(2)},${average(a[1], b[1]).toFixed(2)} `;
|
|
}
|
|
|
|
if (closed) {
|
|
result += 'Z';
|
|
}
|
|
|
|
return result;
|
|
};
|