Optimize /w and /W

This commit is contained in:
Belleve Invis 2019-11-27 18:10:56 -08:00
parent 360a57cbdb
commit b68f7155d2
4 changed files with 15 additions and 8 deletions

View file

@ -798,10 +798,10 @@ export : define [apply] : begin
do "W, w and related =========================================================================" do "W, w and related ========================================================================="
define [WShape top barStraight df] : glyph-construction define [WShape top barStraight df] : glyph-construction
local fineOuter : if barStraight local fineOuter : if barStraight
adviceBlackness WShape.fineSOuter df.div adviceBlackness WShape.fineSOuter [Math.sqrt df.div]
adviceBlackness WShape.fineOuter df.div adviceBlackness WShape.fineOuter df.div
local fineInner : if barStraight local fineInner : if barStraight
adviceBlackness WShape.fineSInner df.div adviceBlackness WShape.fineSInner [Math.sqrt df.div]
adviceBlackness WShape.fineInner df.div adviceBlackness WShape.fineInner df.div
local fineHeight : (fineOuter + fineInner) / 2 local fineHeight : (fineOuter + fineInner) / 2
@ -911,7 +911,7 @@ export : define [apply] : begin
define [WHooktopShape top barStraight df] : glyph-construction define [WHooktopShape top barStraight df] : glyph-construction
local fineOuter : if barStraight local fineOuter : if barStraight
adviceBlackness WShape.fineSOuter df.div adviceBlackness WShape.fineSOuter [Math.sqrt df.div]
adviceBlackness WShape.fineOuter df.div adviceBlackness WShape.fineOuter df.div
local hwCO : if barStraight local hwCO : if barStraight

View file

@ -134,9 +134,16 @@ export : define [calculateMetrics para] : begin
# Blackness parameters # Blackness parameters
# We will estimate blackness using lower-case 'e' # We will estimate blackness using lower-case 'e'
define WHITENESS : ((XH - STROKE * 3) * (RIGHTSB - SB) * (1 / 3)) / (XH * (RIGHTSB - SB)) define [WHITENESS div] : begin
define [adviceBlackness crowdedness div] : Math.min STROKE (((WIDTH * [fallback div 1]) - SB * 2) * (1 - WHITENESS) / (crowdedness * HVCONTRAST)) local w : WIDTH * [fallback div 1] - SB * 2
define [adviceBlackness2 cowX cowY refH div] : Math.min [adviceBlackness cowX (refH / WIDTH)] [adviceBlackness cowY div] return : ((XH - STROKE * 3) * w * (1 / 3)) / (XH * w)
define [adviceBlackness crowdedness div mul] : begin
local gap : (WIDTH * [fallback div 1]) - SB * 2
local shrink : (1 - [WHITENESS 1]) / (crowdedness * HVCONTRAST)
return : Math.min STROKE ([fallback mul 1] * gap * shrink)
define [adviceBlackness2 cowX cowY refH div] : Math.min
adviceBlackness cowX (refH / WIDTH)
adviceBlackness cowY div
define [MVERTSTROKE_D div] : adviceBlackness [fallback para.lllcrowdedness (3 + 1 / 3)] div define [MVERTSTROKE_D div] : adviceBlackness [fallback para.lllcrowdedness (3 + 1 / 3)] div
define MVERTSTROKE : MVERTSTROKE_D 1 define MVERTSTROKE : MVERTSTROKE_D 1
define OVERLAYSTROKE : adviceBlackness 3.75 define OVERLAYSTROKE : adviceBlackness 3.75

View file

@ -160,7 +160,7 @@ define-macro glyph-module-entry : syntax-rules
TAILADJX TAILADJY LBALANCE IBALANCE LBALANCE2 IBALANCE2 JBALANCE JBALANCE2 TBALANCE TBALANCE2 RBALANCE RBALANCE2 TAILADJX TAILADJY LBALANCE IBALANCE LBALANCE2 IBALANCE2 JBALANCE JBALANCE2 TBALANCE TBALANCE2 RBALANCE RBALANCE2
FBALANCE ONEBALANCE FULLWIDTH FULLWIDTH0 FULLWIDTH1 FULLWIDTH2 FULLWIDTH3 OXE ESS ESSQUESTION XO CAPO HALFSTROKE RIGHTSB FWRSB FBALANCE ONEBALANCE FULLWIDTH FULLWIDTH0 FULLWIDTH1 FULLWIDTH2 FULLWIDTH3 OXE ESS ESSQUESTION XO CAPO HALFSTROKE RIGHTSB FWRSB
MIDDLE FWMIDDLE CAPMIDDLE CAP_SMOOTH DOTRADIUS PERIODRADIUS SIDEJUT SMOOTHA SMOOTHB SMALLSMOOTHA SMALLSMOOTHB CORRECTION_OMIDX CORRECTION_OMIDS MIDDLE FWMIDDLE CAPMIDDLE CAP_SMOOTH DOTRADIUS PERIODRADIUS SIDEJUT SMOOTHA SMOOTHB SMALLSMOOTHA SMALLSMOOTHB CORRECTION_OMIDX CORRECTION_OMIDS
WHITENESS adviceBlackness adviceBlackness2 MVERTSTROKE MVERTSTROKE_D OVERLAYSTROKE OPERATORSTROKE GEOMETRYSTROKE SHOULDERFINE SUPERNESS superxy adviceBlackness adviceBlackness2 MVERTSTROKE MVERTSTROKE_D OVERLAYSTROKE OPERATORSTROKE GEOMETRYSTROKE SHOULDERFINE SUPERNESS superxy
adviceSSmooth adviceGlottalStopSmooth shoulderMidSlope] metrics adviceSSmooth adviceGlottalStopSmooth shoulderMidSlope] metrics
define [object define [object
g4 g2 corner flat curl close end straight g4 g2 corner flat curl close end straight

View file

@ -43,7 +43,7 @@ function regulateGlyph(g, skew) {
} }
// De-overlap // De-overlap
g.contours = [...cSimple, ...caryllShapeOps.removeOverlap(cFill, 1, 256, true)]; g.contours = [...cSimple, ...caryllShapeOps.removeOverlap(cFill, 1, 2048, true)];
// Finalize // Finalize
g.contours = c2q.contours(g.contours); g.contours = c2q.contours(g.contours);