From 9ac8bdb80ed702eb24ba1615dc792943391a2569 Mon Sep 17 00:00:00 2001 From: multipleof4 Date: Wed, 19 Nov 2025 11:48:48 -0800 Subject: [PATCH] Fix g: switch to clean single-story design --- src/glyphs/G.js | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/glyphs/G.js b/src/glyphs/G.js index 828f195..4425784 100644 --- a/src/glyphs/G.js +++ b/src/glyphs/G.js @@ -6,14 +6,19 @@ export const glyphG=(o,w)=>new o.Glyph({name:"G",unicode:71,advanceWidth:w,path: })(new o.Path())}); export const glyphg=(o,w)=>new o.Glyph({name:"g",unicode:103,advanceWidth:w,path:(p=>{ - // Outer (CCW) - p.moveTo(475,490).lineTo(250,490).curveTo(130,490,65,420,65,255).curveTo(65,135,105,70,180,55) - .curveTo(130,35,85,-20,85,-80).curveTo(85,-160,150,-210,270,-210).curveTo(420,-210,470,-130,470,-60) - .lineTo(470,30).lineTo(390,30).lineTo(390,-60).curveTo(390,-110,355,-135,275,-135) - .curveTo(200,-135,170,-110,170,-80).curveTo(170,-25,250,5,415,30) - .lineTo(485,40).curveTo(495,135,490,340,490,370).lineTo(545,370).lineTo(545,450) // Ear - .lineTo(480,450).curveTo(485,470,480,490,475,490).close() - // Top Hole (CW) - .moveTo(300,415).curveTo(405,415,400,320,405,215).curveTo(380,185,260,90,165,125) - .curveTo(145,160,145,180,145,245).curveTo(145,385,215,415,300,415).close(); return p; + // Single-story 'g' construction + p.moveTo(480,500).lineTo(395,500).lineTo(395,430) + .curveTo(360,490,295,515,220,515).curveTo(100,515,40,395,40,260) + .curveTo(40,115,95,-5,185,-5).curveTo(250,-5,300,20,345,55) // join area + .lineTo(355,-40) // Start tail descend + .curveTo(365,-140,305,-200,195,-200).curveTo(135,-200,90,-175,60,-150) + .lineTo(30,-210).curveTo(75,-260,140,-280,200,-280) + .curveTo(340,-280,430,-200,440,-40).lineTo(480,-40) // Wide stem for stability + .lineTo(480,500).close() + // Hole + .moveTo(235,435).curveTo(335,435,395,355,395,260) + .curveTo(395,145,335,75,235,75).curveTo(135,75,125,145,125,260) + .curveTo(125,360,135,435,235,435).close(); + return p; })(new o.Path())}); +