diff --git a/frontend/src/lib/components/HandwriteCanvas.svelte b/frontend/src/lib/components/HandwriteCanvas.svelte index 13e421e..c62b3cd 100644 --- a/frontend/src/lib/components/HandwriteCanvas.svelte +++ b/frontend/src/lib/components/HandwriteCanvas.svelte @@ -216,14 +216,16 @@ size, thinning: 0.28, smoothing: 0.99, - streamline: 0.86, + // streamline 0.75 — 0.86 은 짧은 stroke (작은 글자) 에서 lag 누적으로 펜 + // 위치를 따라오지 못해 stroke 가 부서져 보임. 0.75 가 부드러움 + 짧은 + // stroke 정확성 균형. + streamline: 0.75, simulatePressure: false, last: !isInflight, - // 만년필 nib 효과: 시작은 짧게 가늘게 (nib 이 종이에 닿는 순간), 끝은 좀 - // 더 길게 가늘어짐 (nib 이 종이에서 떨어질 때). easing ease-out 으로 - // 빠르게 굵어졌다 천천히 안정 → Notability felt. - start: { cap: true, taper: size * 0.3, easing: (t) => t * (2 - t) }, - end: { cap: true, taper: size * 0.5, easing: (t) => t * (2 - t) }, + // taper 짧게 — 작은 글자 stroke (size × 1~2 길이) 에서 taper 영역이 전체를 + // 차지하지 않도록. nib felt 는 유지하되 짧은 stroke 도 명확히. + start: { cap: true, taper: size * 0.15, easing: (t) => t * (2 - t) }, + end: { cap: true, taper: size * 0.3, easing: (t) => t * (2 - t) }, }); if (outline.length < 2) return; path = new Path2D(getSvgPathFromStroke(outline));