Final refinement of lowercar 'y'
|
@ -1305,32 +1305,34 @@ glyph-block LetterUnified-Basic : begin
|
||||||
### y
|
### y
|
||||||
do "y and related ============================================================================"
|
do "y and related ============================================================================"
|
||||||
define [GenSmallYShape straightBar] : begin
|
define [GenSmallYShape straightBar] : begin
|
||||||
|
local useStraightBottom : !SLAB && straightBar
|
||||||
local useCurlyBottom : SLAB || straightBar
|
local useCurlyBottom : SLAB || straightBar
|
||||||
local px1 0.84
|
local px1 0.84
|
||||||
local py1 : linreg 18 0.8 126 0.76 STROKE
|
local py1 : linreg 18 0.8 126 0.76 STROKE
|
||||||
local px2 0.95
|
local px2 0.95
|
||||||
local py20 0.88
|
local py20 0.88
|
||||||
local py2 : if useCurlyBottom 0.97 py20
|
local py2 : if (useStraightBottom || useCurlyBottom) 0.97 py20
|
||||||
local pds 0.05
|
local pds 0.05
|
||||||
local pds2 0.01
|
local pds2 0.01
|
||||||
local dpy1 : (1 - [linreg (1 - px2) (1 - py2) px1 py1 1]) / (1 - py1)
|
local dpy1 : (1 - [linreg (1 - px2) (1 - py2) px1 py1 1]) / (1 - py1)
|
||||||
local dpy20 : (1 - [linreg (1 - px1) (1 - py1) px2 py20 1]) / (1 - py20)
|
local dpy20 : (1 - [linreg (1 - px1) (1 - py1) px2 py20 1]) / (1 - py20)
|
||||||
local dpy2 : (1 - [linreg (1 - px1) (1 - py1) px2 py2 1]) / (1 - py2)
|
local dpy2 : (1 - [linreg (1 - px1) (1 - py1) px2 py2 1]) / (1 - py2)
|
||||||
local yrstrokel0 : MIDDLE - WIDTH * 0.1
|
local yrstrokel0 : MIDDLE - WIDTH * 0.1
|
||||||
local yrstrokel : MIDDLE - WIDTH * 0.1 + (STROKE * HVCONTRAST * [if useCurlyBottom (2 / 3) (1 / 3)])
|
local yrstrokel : MIDDLE - WIDTH * 0.1 + (STROKE * HVCONTRAST * [if (useStraightBottom || useCurlyBottom) (2 / 3) (1 / 3)])
|
||||||
local ySbCor : (XH / CAP) * (OX * [if SLAB 1 4])
|
local ySbCor : (XH / CAP) * (OX * [if SLAB 1 4])
|
||||||
local yrstroker : RIGHTSB - [if straightBar ySbCor 0]
|
local yrstroker : RIGHTSB - [if straightBar ySbCor 0]
|
||||||
local yshrink : [linreg 18 1 126 0.85 STROKE] * [if straightBar ([adviceBlackness 3.25] / STROKE) 1]
|
local yshrink : [linreg 18 1 126 0.85 STROKE] * [if straightBar ([adviceBlackness 3.25] / STROKE) 1]
|
||||||
local slabysize : JUT * (WIDTH / UPM) + STROKE
|
local yBottomJut : JUT * 1.25
|
||||||
|
local slabysize : JUT * 1.0625 * (WIDTH / UPM) + STROKE
|
||||||
local slabyvx 0.7
|
local slabyvx 0.7
|
||||||
|
|
||||||
define [CalcDS top bottom] : begin
|
define [CalcDS top bottom] : begin
|
||||||
local ds : (top - bottom) * pds
|
local ds : (top - bottom) * pds
|
||||||
local ds2 : (top - bottom) * pds2 + [if useCurlyBottom (slabysize * slabyvx) 0]
|
local ds2 : (top - bottom) * pds2 + [if (useStraightBottom || useCurlyBottom) (slabysize * slabyvx) 0]
|
||||||
return {ds ds2}
|
return {ds ds2}
|
||||||
|
|
||||||
define [yTopKnots x top ds dir dx dy] : begin
|
define [yTopKnots x top ds dir dx dy] : begin
|
||||||
local hs : HALFSTROKE * [diagCor dy dx 0 (STROKE * 2)]
|
local hs : HALFSTROKE * [if straightBar [diagCor dy dx 0 (STROKE * 2)] 1]
|
||||||
local hl : hs - hs * dir
|
local hl : hs - hs * dir
|
||||||
local hr : hs + hs * dir
|
local hr : hs + hs * dir
|
||||||
if straightBar : return : list
|
if straightBar : return : list
|
||||||
|
@ -1341,7 +1343,11 @@ glyph-block LetterUnified-Basic : begin
|
||||||
quadcontrols 0 dpy1 16
|
quadcontrols 0 dpy1 16
|
||||||
|
|
||||||
define [yBaseKnots top bottom shrink hooktop] : begin
|
define [yBaseKnots top bottom shrink hooktop] : begin
|
||||||
|
local cor : diagCor (top - bottom) WIDTH 0 (STROKE * 2)
|
||||||
local {ds ds2} : CalcDS top bottom
|
local {ds ds2} : CalcDS top bottom
|
||||||
|
define joinX : mix yrstrokel yrstroker (1 - px2)
|
||||||
|
define joinY : mix (bottom + ds2) (top - ds) (1 - py2)
|
||||||
|
define [ConnectZ shrink] : curl joinX joinY [widths.rhs : STROKE * shrink]
|
||||||
return : list
|
return : list
|
||||||
if (straightBar && (! hooktop))
|
if (straightBar && (! hooktop))
|
||||||
then : list
|
then : list
|
||||||
|
@ -1349,18 +1355,17 @@ glyph-block LetterUnified-Basic : begin
|
||||||
flat
|
flat
|
||||||
mix yrstrokel yrstroker px1
|
mix yrstrokel yrstroker px1
|
||||||
mix (bottom + ds2) (top - ds) py1
|
mix (bottom + ds2) (top - ds) py1
|
||||||
curl
|
|
||||||
mix yrstrokel yrstroker (1 - px2)
|
|
||||||
mix (bottom + ds2) (top - ds) (1 - py2)
|
|
||||||
widths.rhs : STROKE * [if useCurlyBottom shrink 1]
|
|
||||||
|
|
||||||
if useCurlyBottom
|
piecewise
|
||||||
then : list
|
useStraightBottom : list
|
||||||
|
ConnectZ shrink
|
||||||
|
curl [mix yrstroker joinX ((top - bottom) / (top - joinY))] bottom [widths.heading 0 (STROKE * cor) DOWNWARD]
|
||||||
|
useCurlyBottom : list
|
||||||
|
ConnectZ shrink
|
||||||
flat (yrstrokel - slabysize) bottom [widths.rhs]
|
flat (yrstrokel - slabysize) bottom [widths.rhs]
|
||||||
curl
|
curl [Math.min (yrstrokel - slabysize - 0.1) (yrstrokel - STROKE - yBottomJut)] bottom
|
||||||
Math.min (yrstrokel - slabysize - 0.1) (yrstrokel - STROKE - JUT)
|
true : list
|
||||||
begin bottom
|
ConnectZ 1
|
||||||
else : list
|
|
||||||
quadcontrols 1 (1 - dpy2) 16
|
quadcontrols 1 (1 - dpy2) 16
|
||||||
flat yrstrokel (bottom + ds2) [widths.heading 0 STROKE DOWNWARD]
|
flat yrstrokel (bottom + ds2) [widths.heading 0 STROKE DOWNWARD]
|
||||||
curl yrstrokel bottom [widths.heading 0 STROKE DOWNWARD]
|
curl yrstrokel bottom [widths.heading 0 STROKE DOWNWARD]
|
||||||
|
@ -1426,7 +1431,7 @@ glyph-block LetterUnified-Basic : begin
|
||||||
|
|
||||||
define [SmallYHookTopShape top bottom] : glyph-construction
|
define [SmallYHookTopShape top bottom] : glyph-construction
|
||||||
local ds : (top - bottom) * pds
|
local ds : (top - bottom) * pds
|
||||||
local ds2 : (top - bottom) * pds2 + [if useCurlyBottom (slabysize * slabyvx) 0]
|
local ds2 : (top - bottom) * pds2 + [if (useStraightBottom || useCurlyBottom) (slabysize * slabyvx) 0]
|
||||||
local joinHeight : yJoinHeight ds ds2 top bottom true
|
local joinHeight : yJoinHeight ds ds2 top bottom true
|
||||||
|
|
||||||
include : intersection
|
include : intersection
|
||||||
|
|
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 163 KiB |
Before Width: | Height: | Size: 397 KiB After Width: | Height: | Size: 396 KiB |
Before Width: | Height: | Size: 338 KiB After Width: | Height: | Size: 339 KiB |
Before Width: | Height: | Size: 174 KiB After Width: | Height: | Size: 174 KiB |
Before Width: | Height: | Size: 336 KiB After Width: | Height: | Size: 336 KiB |
Before Width: | Height: | Size: 900 KiB After Width: | Height: | Size: 900 KiB |
Before Width: | Height: | Size: 319 KiB After Width: | Height: | Size: 319 KiB |