Optimized the shapes of /Omega.

This commit is contained in:
be5invis 2015-12-09 21:27:55 +08:00
parent 4748c3e9a3
commit 05e5a24279
3 changed files with 23 additions and 18 deletions

View File

@ -557,34 +557,39 @@ symbol-block 'Psi'
include : tagged 'serifRT' : RightwardTopSerif RIGHTSB XH SIDEJUT
symbol-block 'Omega'
define [OmegaShape top sma smb ssma ssmb] : glyph-construction
local fine : STROKE * 0.4
define [OmegaShape top extend sma smb] : glyph-construction
local fine : STROKE * 0.75
local x1 [mix SB RIGHTSB 0.4]
local x2 (WIDTH - x1)
local yattach : top * extend + STROKE
include : dispiro
g4 [mix SB RIGHTSB 0.4] STROKE [widths.heading fine 0 LEFTWARD]
g4 x1 (yattach - fine) [widths.heading 0 fine LEFTWARD]
archv
flat SB ssmb [widths 0 STROKE]
flat SB (yattach - STROKE + smb) [widths 0 STROKE]
curl SB (top - sma)
arcvh
g4 (MIDDLE - CORRECTION_OMIDS) (top - O)
archv
flat RIGHTSB (top - smb)
curl RIGHTSB ssma
curl RIGHTSB (yattach - STROKE + sma)
arcvh
g4 [mix RIGHTSB SB 0.4] STROKE [widths.heading fine 0 LEFTWARD]
include : HBar SB [mix SB RIGHTSB 0.4] HALFSTROKE
include : HBar [mix RIGHTSB SB 0.4] RIGHTSB HALFSTROKE
g4 x2 (yattach - fine) [widths.heading 0 fine LEFTWARD]
include : VBarRight x1 0 (yattach) fine
include : HBar SB x1 HALFSTROKE
include : VBarLeft x2 0 (yattach) fine
include : HBar x2 RIGHTSB HALFSTROKE
create-glyph 'Omega' : glyph-construction
assign-unicode 0x3A9
include capitalMarks
include : OmegaShape CAP SMOOTHA SMOOTHB SMALLSMOOTHA SMALLSMOOTHB
include : OmegaShape CAP 0.08 SMOOTHA SMOOTHB
turned 'latinUpsilon1' 0x1B1 'Omega' MIDDLE (CAP / 2)
create-glyph 'latinupsilon1' : glyph-construction
assign-unicode 0x28A
include eMarks
include : OmegaShape XH SMALLSMOOTHA SMALLSMOOTHB SMALLSMOOTHA SMALLSMOOTHB
include : OmegaShape XH 0.08 SMALLSMOOTHA SMALLSMOOTHB
include : FlipAround MIDDLE (XH / 2)
symbol-block 'omega'
@ -1361,9 +1366,9 @@ symbol-block 'Digraphs'
flat SB CAP [heading DOWNWARD]
curl SB (CAP * BARPOS - O - HALFSTROKE + SMOOTHB)
arcvh
g4 (MIDDLE + CORRECTION_OMIDS) (CAP * BARPOS - O - HALFSTROKE)
g4 (MIDDLE + CORRECTION_OMIDS) (CAP * BARPOS - O - HALFSTROKE + (STROKE * (1 - CTHIN))) [widths.lhs (STROKE * CTHIN)]
archv
flat RIGHTSB (CAP * BARPOS - O - HALFSTROKE + SMOOTHA)
flat RIGHTSB (CAP * BARPOS - O - HALFSTROKE + SMOOTHA) [widths.lhs]
curl RIGHTSB CAP [heading UPWARD]
create-glyph 'ou' : glyph-construction
@ -1375,9 +1380,9 @@ symbol-block 'Digraphs'
flat SB CAP [heading DOWNWARD]
curl SB (XH - O - STROKE + SMOOTHB)
arcvh
g4 (MIDDLE + CORRECTION_OMIDS) (XH - O - STROKE)
g4 (MIDDLE + CORRECTION_OMIDS) (XH - O - STROKE + (STROKE * (1 - CTHIN))) [widths.lhs (STROKE * CTHIN)]
archv
flat RIGHTSB (XH - O - STROKE + SMOOTHA)
flat RIGHTSB (XH - O - STROKE + SMOOTHA) [widths.lhs]
curl RIGHTSB CAP [heading UPWARD]
create-glyph 'IJ' : glyph-construction

View File

@ -29,9 +29,9 @@ font.replaceWithReference(2)
print " Simplify: ", font.fontname
font.selection.all()
font.transform(psMat.scale(5, 1))
font.transform(psMat.scale(5))
font.simplify(1, ("smoothcurves", "choosehv"), 0.1)
font.transform(psMat.scale(0.2, 1))
font.transform(psMat.scale(0.2))
font.simplify(1, ("smoothcurves", "choosehv"), 0.1)
font.layers["Fore"].is_quadratic = True
font.transform(psMat.skew(float(sys.argv[3]) / 180 * math.pi))

View File

@ -181,7 +181,7 @@ define [Glyph.prototype.cleanup t] : begin
local p2 ocontour.(j + 1)
local p3 ocontour.(j + 2)
local strand : new Bezier p0.x p0.y p1.x p1.y p2.x p2.y p3.x p3.y
local ts [strand.inflections].y
local ts [strand.inflections].values
piecewise
(!ts || ts.length < 1) : contour.push p1 p2 p3
true : begin
@ -201,7 +201,7 @@ define [Glyph.prototype.cleanup t] : begin
local p2 ocontour.(j + 1)
if [not p2.onCurve] : set p2 : new Point [mix p1.x p2.x 0.5] [mix p1.y p2.y 0.5] true
local strand : new Bezier p0.x p0.y p1.x p1.y p2.x p2.y
local ts [strand.inflections].y
local ts [strand.inflections].values
piecewise
(!ts || ts.length < 1) : contour.push p1 p2
true : begin