mirror of
https://github.com/multipleof4/stain.otf.git
synced 2026-01-14 08:37:59 +00:00
Refactor: Redraw uppercase B glyph
This commit is contained in:
100
src/glyphs/B.js
100
src/glyphs/B.js
@@ -1,87 +1,67 @@
|
|||||||
const makeGlyph = (opentype, name, unicode, cmds, adv) =>
|
const makeGlyph=(opentype,name,unicode,cmds,adv)=>
|
||||||
new opentype.Glyph({
|
new opentype.Glyph({
|
||||||
name,
|
name,
|
||||||
unicode,
|
unicode,
|
||||||
advanceWidth: adv,
|
advanceWidth:adv,
|
||||||
path: cmds(new opentype.Path())
|
path:cmds(new opentype.Path())
|
||||||
});
|
});
|
||||||
|
|
||||||
export const glyphB = (opentype, adv) =>
|
export const glyphB=(opentype,adv)=>
|
||||||
makeGlyph(
|
makeGlyph(
|
||||||
opentype,
|
opentype,
|
||||||
"B",
|
"B",
|
||||||
"B".codePointAt(0),
|
"B".codePointAt(0),
|
||||||
(p) => {
|
p=>{
|
||||||
p.moveTo(100, 0);
|
const s=90;
|
||||||
p.lineTo(100, 700);
|
const x0=110,x1=x0+s;
|
||||||
p.lineTo(340, 700);
|
const top=700,mid=360,bot=0;
|
||||||
p.curveTo(450, 700, 520, 640, 520, 560);
|
const ix=320;
|
||||||
p.curveTo(520, 500, 480, 450, 420, 430);
|
const oTop=560,oMid=520,oBot=bot;
|
||||||
p.curveTo(490, 410, 540, 360, 540, 280);
|
p.moveTo(x0,bot);
|
||||||
p.curveTo(540, 180, 460, 120, 340, 120);
|
p.lineTo(x0,top);
|
||||||
p.lineTo(100, 120);
|
p.lineTo(x1,top);
|
||||||
|
p.lineTo(x1,bot);
|
||||||
p.close();
|
p.close();
|
||||||
p.moveTo(160, 60);
|
p.moveTo(ix,top);
|
||||||
p.lineTo(340, 60);
|
p.curveTo(oTop,top,oTop-10,top-70,oTop-40,top-120);
|
||||||
p.curveTo(490, 60, 600, 140, 600, 280);
|
p.curveTo(oTop-70,top-180,ix+40,mid+80,ix,mid+80);
|
||||||
p.curveTo(600, 390, 520, 460, 420, 470);
|
p.lineTo(x1,mid+80);
|
||||||
p.lineTo(420, 410);
|
p.lineTo(x1,top- s/2);
|
||||||
p.curveTo(460, 410, 460, 360, 460, 360);
|
|
||||||
p.curveTo(460, 360, 460, 310, 420, 310);
|
|
||||||
p.lineTo(340, 310);
|
|
||||||
p.lineTo(340, 370);
|
|
||||||
p.lineTo(380, 370);
|
|
||||||
p.curveTo(440, 370, 460, 410, 460, 460);
|
|
||||||
p.curveTo(460, 510, 440, 550, 380, 550);
|
|
||||||
p.lineTo(340, 550);
|
|
||||||
p.lineTo(340, 640);
|
|
||||||
p.lineTo(340, 640);
|
|
||||||
p.curveTo(420, 640, 460, 600, 460, 560);
|
|
||||||
p.curveTo(460, 520, 420, 480, 340, 480);
|
|
||||||
p.lineTo(160, 480);
|
|
||||||
p.close();
|
p.close();
|
||||||
p.moveTo(160, 60);
|
p.moveTo(ix,mid);
|
||||||
p.lineTo(340, 60);
|
p.curveTo(oMid,mid,oMid+40,mid-80,oMid+40,mid-150);
|
||||||
p.curveTo(430, 60, 480, 110, 480, 180);
|
p.curveTo(oMid+40,200,oMid-40,120,ix,120);
|
||||||
p.lineTo(480, 280);
|
p.lineTo(x1,120);
|
||||||
p.curveTo(480, 350, 430, 400, 340, 400);
|
p.lineTo(x1,mid);
|
||||||
p.lineTo(160, 400);
|
|
||||||
p.close();
|
|
||||||
p.moveTo(160, 460);
|
|
||||||
p.lineTo(330, 460);
|
|
||||||
p.curveTo(410, 460, 460, 500, 460, 560);
|
|
||||||
p.curveTo(460, 620, 410, 640, 330, 640);
|
|
||||||
p.lineTo(160, 640);
|
|
||||||
p.close();
|
p.close();
|
||||||
return p;
|
return p;
|
||||||
},
|
},
|
||||||
adv
|
adv
|
||||||
);
|
);
|
||||||
|
|
||||||
export const glyphb = (opentype, adv) =>
|
export const glyphb=(opentype,adv)=>
|
||||||
makeGlyph(
|
makeGlyph(
|
||||||
opentype,
|
opentype,
|
||||||
"b",
|
"b",
|
||||||
"b".codePointAt(0),
|
"b".codePointAt(0),
|
||||||
(p) => {
|
p=>{
|
||||||
p.moveTo(100, 0);
|
p.moveTo(100,0);
|
||||||
p.lineTo(100, 720);
|
p.lineTo(100,720);
|
||||||
p.lineTo(160, 720);
|
p.lineTo(160,720);
|
||||||
p.lineTo(160, 440);
|
p.lineTo(160,440);
|
||||||
p.curveTo(200, 470, 250, 490, 310, 490);
|
p.curveTo(200,470,250,490,310,490);
|
||||||
p.curveTo(430, 490, 520, 400, 520, 280);
|
p.curveTo(430,490,520,400,520,280);
|
||||||
p.curveTo(520, 160, 430, 70, 310, 70);
|
p.curveTo(520,160,430,70,310,70);
|
||||||
p.curveTo(250, 70, 200, 90, 160, 120);
|
p.curveTo(250,70,200,90,160,120);
|
||||||
p.lineTo(160, 0);
|
p.lineTo(160,0);
|
||||||
p.close();
|
p.close();
|
||||||
p.moveTo(310, 130);
|
p.moveTo(310,130);
|
||||||
p.curveTo(400, 130, 460, 190, 460, 280);
|
p.curveTo(400,130,460,190,460,280);
|
||||||
p.curveTo(460, 370, 400, 430, 310, 430);
|
p.curveTo(460,370,400,430,310,430);
|
||||||
p.curveTo(220, 430, 160, 370, 160, 280);
|
p.curveTo(220,430,160,370,160,280);
|
||||||
p.curveTo(160, 190, 220, 130, 310, 130);
|
p.curveTo(160,190,220,130,310,130);
|
||||||
p.close();
|
p.close();
|
||||||
return p;
|
return p;
|
||||||
},
|
},
|
||||||
adv
|
adv
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user