Refactor W/w: Double V construction

This commit is contained in:
2025-11-19 08:07:09 -08:00
parent 1c1a92ec21
commit 8ee06a0f29

View File

@@ -1,58 +1,13 @@
const makeGlyph = (opentype, name, unicode, cmds, adv) =>
new opentype.Glyph({
name,
unicode,
advanceWidth: adv,
path: cmds(new opentype.Path())
});
export const glyphW = (opentype, adv) =>
makeGlyph(
opentype,
"W",
"W".codePointAt(0),
(p) => {
p.moveTo(40, 700);
p.lineTo(110, 700);
p.lineTo(230, 140);
p.lineTo(350, 700);
p.lineTo(410, 700);
p.lineTo(530, 140);
p.lineTo(650, 700);
p.lineTo(720, 700);
p.lineTo(570, 0);
p.lineTo(510, 0);
p.lineTo(380, 600);
p.lineTo(250, 0);
p.lineTo(190, 0);
p.close();
return p;
},
760
);
export const glyphw = (opentype, adv) =>
makeGlyph(
opentype,
"w",
"w".codePointAt(0),
(p) => {
p.moveTo(50, 480);
p.lineTo(120, 480);
p.lineTo(210, 100);
p.lineTo(300, 480);
p.lineTo(360, 480);
p.lineTo(450, 100);
p.lineTo(540, 480);
p.lineTo(610, 480);
p.lineTo(490, 0);
p.lineTo(430, 0);
p.lineTo(330, 400);
p.lineTo(230, 0);
p.lineTo(170, 0);
p.close();
return p;
},
660
);
const mk=(o,n,u,d,w)=>new o.Glyph({name:n,unicode:u,advanceWidth:w,path:d(new o.Path())});
export const glyphW=(o,w)=>mk(o,"W",87,p=>{
p.moveTo(20,700);p.lineTo(110,700);p.lineTo(220,200);p.lineTo(330,700);p.lineTo(430,700);
p.lineTo(540,200);p.lineTo(650,700);p.lineTo(740,700);p.lineTo(580,0);p.lineTo(490,0);
p.lineTo(380,400);p.lineTo(270,0);p.lineTo(180,0);p.close();
return p;
},760);
export const glyphw=(o,w)=>mk(o,"w",119,p=>{
p.moveTo(20,480);p.lineTo(100,480);p.lineTo(190,140);p.lineTo(280,480);p.lineTo(380,480);
p.lineTo(470,140);p.lineTo(560,480);p.lineTo(640,480);p.lineTo(510,0);p.lineTo(430,0);
p.lineTo(330,300);p.lineTo(230,0);p.lineTo(150,0);p.close();
return p;
},660);