diff --git a/frontend/src/lib/components/HandwriteCanvas.svelte b/frontend/src/lib/components/HandwriteCanvas.svelte index 31b1da7..cf58d1d 100644 --- a/frontend/src/lib/components/HandwriteCanvas.svelte +++ b/frontend/src/lib/components/HandwriteCanvas.svelte @@ -214,10 +214,10 @@ if (!path) { const outline = getStroke(pts, { size, - // thinning 0.22 — pressure 변동에 stroke 폭 ±22% 반응. moving-window 평균 - // pressure 와 조합 → 큰 흐름의 굵기 변화는 명확하지만 점 간 micro 변동 없음 - // (마디 안 발생). Notability 비슷한 자연스러운 변화. - thinning: 0.22, + // thinning 0.4 — pressure 변동에 stroke 폭 ±40% 반응. 만년필 nib 처럼 약한 + // 압력 = 가는 선, 강한 압력 = 굵은 선. PRESSURE_WINDOW 8 의 적당한 평균이 + // 마디 차단 + 명확한 굵기 변화 균형. + thinning: 0.4, // smoothing 0.99 — 점 간 보간 사실상 최대. smoothing: 0.99, // streamline 0.86 — input lazy 강하게. 손떨림 보정 + 부드러움. 0.9 이상은 lag. @@ -345,7 +345,7 @@ // 살짝 변동시켜 thinning 적용 시 *점 간 micro 폭 변동 = 마디* 일으키던 회귀를 // 차단. window 평균은 큰 흐름만 반영, 매 점 변동은 1/N 수준. 사용자 보고 "선 // 사이사이 애매한 끊어짐" 의 원인이었음. - const PRESSURE_WINDOW = 16; + const PRESSURE_WINDOW = 8; function smoothPressureWindow(pts: Point[], current: number): number { let sum = current; let count = 1;