diff options
Diffstat (limited to 'public/bluebey-studio/src/faceArt.js')
| -rw-r--r-- | public/bluebey-studio/src/faceArt.js | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/public/bluebey-studio/src/faceArt.js b/public/bluebey-studio/src/faceArt.js index 671ed1d..ca23b74 100644 --- a/public/bluebey-studio/src/faceArt.js +++ b/public/bluebey-studio/src/faceArt.js @@ -847,8 +847,8 @@ function drawHeadCover(ctx, spec, limits) { const halfSpan = width / 2; const boundary = (x) => { const t = clamp((x - cx) / halfSpan, -1, 1); - // まえがみ: a narrow, deep V pointing down the middle (Atom / Mickey). - if (shape === 'fringe') return base + 175 * Math.max(0, 1 - Math.abs(t) * 1.6); + // まえがみ: swept down towards the cheeks, raised in the middle. + if (shape === 'fringe') return base - 175 * (1 - t * t); // はちわれ: the same V upside down - a widow's peak. if (shape === 'fringe-up') return base - 320 * Math.max(0, 1 - Math.abs(t) * 1.5); // カーブ: a plain shallow curve, higher (more hair) round the sides. @@ -934,8 +934,9 @@ export function drawHeadCoverWrap(ctx, spec, layout) { const cx = layout.offsetX + span * 0.5 + clamp(spec.offsetX ?? 0, -600, 600); const vBound = (x) => { const t = clamp((x - cx) / half, -1, 1); - // まえがみ: a narrow, deep V pointing down the middle (Atom / Mickey). - if (shape === 'fringe') return base + 0.15 * Math.max(0, 1 - Math.abs(t) * 1.6); + // まえがみ: swept down towards the cheeks, raised in the middle - the + // opposite curvature to a central point (concave towards the cheeks). + if (shape === 'fringe') return base + 0.22 * t * t; // はちわれ: the same V upside down - a widow's peak. if (shape === 'fringe-up') return base - 0.18 * Math.max(0, 1 - Math.abs(t) * 1.5); // カーブ: a deep round cover - low at the sides, high in the middle, like the |
