Optimize /w and /W
This commit is contained in:
parent
360a57cbdb
commit
b68f7155d2
4 changed files with 15 additions and 8 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue