Fix: Clean up lowercase g to single-storey

This commit is contained in:
2025-11-09 13:05:28 -08:00
parent ad3531e49b
commit 93a16ef5bd

View File

@@ -40,39 +40,42 @@ export const glyphg=(opentype,adv)=>
"g", "g",
"g".codePointAt(0), "g".codePointAt(0),
p=>{ p=>{
// single-storey "g" with open top, bowl and right descender // singlestorey g: round bowl + right descender, no stray vertical slice
const xMin=80,xMax=520; const cx=300;
const bowlTop=260,bowlBottom=-10; const rOuter=210;
const base=480,desc=-150; const rInner=130;
// bowl outer // outer bowl
p.moveTo(300,bowlBottom); p.moveTo(cx, -10);
p.curveTo(180,bowlBottom,xMin,80,xMin,230); p.curveTo(cx- rOuter, -10, 90, 90, 90,230);
p.curveTo(xMin,380,190,470,310,470); p.curveTo(90,370, cx- rOuter+40,470, cx,470);
p.curveTo(410,470,480,430,510,360); p.curveTo( cx+ rOuter-40,470,510,370,510,230);
// join into stem p.curveTo(510,90, cx+ rOuter-40,-10, cx,-10);
p.lineTo(510,base);
// stem down to descender
p.lineTo(450,base);
p.lineTo(450,desc);
p.lineTo(510,desc);
p.lineTo(510,200);
p.curveTo(510,80,430,bowlBottom,300,bowlBottom);
p.close(); p.close();
// bowl inner // inner counter
p.moveTo(300,50); p.moveTo(cx,50);
p.curveTo(390,50,450,110,450,230); p.curveTo(cx+ rInner,50, cx+ rInner,130, cx+ rInner,230);
p.curveTo(450,350,390,410,300,410); p.curveTo(cx+ rInner,330, cx,410, cx,410);
p.curveTo(210,410,150,350,150,230); p.curveTo(cx- rInner,410, cx- rInner,330, cx- rInner,230);
p.curveTo(150,110,210,50,300,50); p.curveTo(cx- rInner,130, cx- rInner,50, cx,50);
p.close(); p.close();
// open ear/top hook on right side // descender from right bowl edge
p.moveTo(450,320); p.moveTo(450,230);
p.curveTo(420,260,370,230,310,230); p.curveTo(450,360,390,430,310,430);
p.lineTo(310,170); p.lineTo(310,490);
p.curveTo(395,170,460,205,500,270); p.curveTo(420,490,510,410,510,260);
p.lineTo(510,-150);
p.lineTo(450,-150);
p.lineTo(450,230);
p.close();
// small ear on upper-right
p.moveTo(420,260);
p.curveTo(455,245,480,215,495,180);
p.lineTo(455,160);
p.curveTo(440,190,420,210,395,225);
p.close(); p.close();
return p; return p;