mirror of
https://github.com/multipleof4/stain.otf.git
synced 2026-01-14 08:37:59 +00:00
Refactor B/b: Refined bowls and stems
This commit is contained in:
@@ -1,65 +1,14 @@
|
||||
const makeGlyph=(opentype,name,unicode,cmds,adv)=>
|
||||
new opentype.Glyph({
|
||||
name,
|
||||
unicode,
|
||||
advanceWidth:adv,
|
||||
path:cmds(new opentype.Path())
|
||||
});
|
||||
|
||||
export const glyphB=(opentype,adv)=>
|
||||
makeGlyph(
|
||||
opentype,
|
||||
"B",
|
||||
"B".codePointAt(0),
|
||||
p=>{
|
||||
p.moveTo(100,0);
|
||||
p.lineTo(100,700);
|
||||
p.lineTo(320,700);
|
||||
p.curveTo(440,700,520,640,520,550);
|
||||
p.curveTo(520,490,480,440,420,410);
|
||||
p.curveTo(490,380,530,320,530,250);
|
||||
p.curveTo(530,140,450,0,300,0);
|
||||
p.close();
|
||||
p.moveTo(160,60);
|
||||
p.lineTo(300,60);
|
||||
p.curveTo(410,60,470,130,470,250);
|
||||
p.curveTo(470,370,410,370,300,370);
|
||||
p.lineTo(160,370);
|
||||
p.close();
|
||||
p.moveTo(160,430);
|
||||
p.lineTo(320,430);
|
||||
p.curveTo(410,430,460,480,460,550);
|
||||
p.curveTo(460,620,410,640,320,640);
|
||||
p.lineTo(160,640);
|
||||
p.close();
|
||||
const mk=(o,n,u,d,w)=>new o.Glyph({name:n,unicode:u,advanceWidth:w,path:d(new o.Path())});
|
||||
export const glyphB=(o,w)=>mk(o,"B",66,p=>{
|
||||
p.moveTo(80,0);p.lineTo(80,700);p.lineTo(340,700);p.curveTo(520,700,520,380,340,380);
|
||||
p.lineTo(160,380);p.lineTo(160,320);p.lineTo(360,320);p.curveTo(560,320,560,0,360,0);p.close();
|
||||
p.moveTo(160,440);p.lineTo(340,440);p.curveTo(440,440,440,640,340,640);p.lineTo(160,640);p.close();
|
||||
p.moveTo(160,60);p.lineTo(360,60);p.curveTo(480,60,480,260,360,260);p.lineTo(160,260);p.close();
|
||||
return p;
|
||||
},
|
||||
adv
|
||||
);
|
||||
|
||||
export const glyphb=(opentype,adv)=>
|
||||
makeGlyph(
|
||||
opentype,
|
||||
"b",
|
||||
"b".codePointAt(0),
|
||||
p=>{
|
||||
p.moveTo(100,0);
|
||||
p.lineTo(100,720);
|
||||
p.lineTo(160,720);
|
||||
p.lineTo(160,440);
|
||||
p.curveTo(200,470,250,490,310,490);
|
||||
p.curveTo(430,490,520,400,520,280);
|
||||
p.curveTo(520,160,430,70,310,70);
|
||||
p.curveTo(250,70,200,90,160,120);
|
||||
p.lineTo(160,0);
|
||||
p.close();
|
||||
p.moveTo(310,130);
|
||||
p.curveTo(400,130,460,190,460,280);
|
||||
p.curveTo(460,370,400,430,310,430);
|
||||
p.curveTo(220,430,160,370,160,280);
|
||||
p.curveTo(160,190,220,130,310,130);
|
||||
p.close();
|
||||
},w);
|
||||
export const glyphb=(o,w)=>mk(o,"b",98,p=>{
|
||||
p.moveTo(80,0);p.lineTo(80,710);p.lineTo(160,710);p.lineTo(160,480);
|
||||
p.lineTo(320,480);p.curveTo(540,480,540,0,320,0);p.close();
|
||||
p.moveTo(160,60);p.lineTo(320,60);p.curveTo(460,60,460,420,320,420);p.lineTo(160,420);p.close();
|
||||
return p;
|
||||
},
|
||||
adv
|
||||
);
|
||||
},w);
|
||||
|
||||
Reference in New Issue
Block a user