From efdb54c4557b1d43a8fb0f1ebb283d3489d313ab Mon Sep 17 00:00:00 2001 From: s4luorth Date: Mon, 4 May 2026 11:21:28 +0200 Subject: [PATCH] =?UTF-8?q?Schrift=20zuf=C3=A4lliger=20machen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Docker Backend/src/lib/svg-font-engine.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Docker Backend/src/lib/svg-font-engine.js b/Docker Backend/src/lib/svg-font-engine.js index 0ae2362..d523572 100644 --- a/Docker Backend/src/lib/svg-font-engine.js +++ b/Docker Backend/src/lib/svg-font-engine.js @@ -174,15 +174,15 @@ function layoutTextToPaths({ for (const line of lines) { let x = startX; let drift = 0; - const lineSlope = (Math.random() - 0.5) * 0.012; // ±2.4px über 400px Zeilenbreite + const lineSlope = (Math.random() - 0.5) * 0.01; // ±4px über 400px Zeilenbreite (~0.6°) for (let i = 0; i < line.length; i++) { const ch = line[i]; const glyph = glyphs[ch]; if (!glyph) { - // Leerzeichen mit festem Abstand - const spacePx = fontSizePx * 0.4; + // Leerzeichen mit leicht variierender Breite + const spacePx = fontSizePx * 0.4 * (1 + (Math.random() - 0.5) * 0.08); x += spacePx; drift += (Math.random() - 0.5) * 0.3; drift = Math.max(-3, Math.min(3, drift)); @@ -198,11 +198,13 @@ function layoutTextToPaths({ const charY = baselineY + yJitter + drift + lineSlope * (x - startX); - const angleDeg = (Math.random() - 0.5) * 3; + const charScale = scale; + + const angleDeg = 5 + (Math.random() - 0.5) * 2; // 4–6° Neigung nach rechts const pivotX = x + advPx / 2; const pivotY = charY - fontSizePx * 0.3; - const transform = `rotate(${angleDeg.toFixed(3)},${pivotX.toFixed(1)},${pivotY.toFixed(1)}) matrix(${scale},0,0,${-scale},${x},${charY})`; + const transform = `rotate(${angleDeg.toFixed(3)},${pivotX.toFixed(1)},${pivotY.toFixed(1)}) matrix(${charScale},0,0,${-charScale},${x},${charY})`; resultPaths.push({ d, transform });