W refinement

This commit is contained in:
Belleve Invis 2019-08-09 22:55:42 -07:00
parent 2a4b4535dd
commit 847101fd8b

View file

@ -798,8 +798,9 @@ export : define [apply] : begin
define { WShape } : do "W, w and related ======================================================" define { WShape } : do "W, w and related ======================================================"
define [WShape top barStraight _div] : glyph-construction define [WShape top barStraight _div] : glyph-construction
local div : fallback _div 1 local div : fallback _div 1
local rightSB : WIDTH * div - SB local df : DivFrame div
local middle : MIDDLE * div local left : SB / [if barStraight (1 + 3 * (div - 1)) 1]
local right : df.width - left
local fineOuter : if barStraight local fineOuter : if barStraight
adviceBlackness WShape.fineS div adviceBlackness WShape.fineS div
adviceBlackness WShape.fineOuter div adviceBlackness WShape.fineOuter div
@ -808,22 +809,26 @@ export : define [apply] : begin
adviceBlackness WShape.fineInner div adviceBlackness WShape.fineInner div
local fineHeight : (fineOuter + fineInner) / 2 local fineHeight : (fineOuter + fineInner) / 2
local fineOffsetOuter : fineOuter / 2 * HVCONTRAST * [if barStraight WShape.fineOffsetS WShape.fineOffset] local hwCO : if barStraight
local fineOffsetInner : fineInner / 2 * HVCONTRAST * [if barStraight WShape.fineOffsetS WShape.fineOffset] (1 / 2) * [adviceBlackness WShape.hwCOS div]
local m1 : WIDTH * div * [if barStraight WShape.m1S WShape.m1] + [if barStraight O 0] (1 / 2) * [adviceBlackness WShape.hwCO div]
local m2 : WIDTH * div * [if barStraight WShape.m2S WShape.m2] - [if barStraight O 0] local delimBias : hwCO * HVCONTRAST
local wheight : if barStraight top (top * 0.6) local fineOffsetOuter : hwCO * HVCONTRAST
local fineOffsetInner : hwCO * HVCONTRAST
local m1 : [mix (left + delimBias) (right - delimBias) : if barStraight WShape.m1S WShape.m1] + [if barStraight O 0]
local m2 : [mix (left + delimBias) (right - delimBias) : if barStraight WShape.m2S WShape.m2] - [if barStraight O 0]
local wMidHeight : if barStraight top (top * 0.6)
if barStraight : begin if barStraight : begin
include : dispiro include : dispiro
widths.lhs widths.lhs
flat (SB + O * 2) top [heading DOWNWARD] flat (left + O * 2) top [heading DOWNWARD]
g4 (m1 - fineOffsetOuter) 0 [widths.lhs fineOuter] g4 (m1 - fineOffsetOuter) 0 [widths.lhs fineOuter]
: else : begin : else : begin
include : dispiro include : dispiro
widths.lhs widths.lhs
flat SB top [heading DOWNWARD] flat left top [heading DOWNWARD]
curl SB (top * 0.75) [heading DOWNWARD] curl left (top * 0.75) [heading DOWNWARD]
quadcontrols 0 0.3 6 unimportant quadcontrols 0 0.3 6 unimportant
g4 (m1 - fineOffsetOuter) 0 [widths.lhs fineOuter] g4 (m1 - fineOffsetOuter) 0 [widths.lhs fineOuter]
@ -834,9 +839,9 @@ export : define [apply] : begin
corner (m1 - fineOffsetOuter) 0 corner (m1 - fineOffsetOuter) 0
corner m1 fineHeight corner m1 fineHeight
spiro-outline spiro-outline
corner (middle + fineOffsetInner) wheight corner (df.middle + fineOffsetInner) wMidHeight
corner middle (wheight - fineHeight) corner df.middle (wMidHeight - fineHeight)
corner (middle - fineOffsetInner) wheight corner (df.middle - fineOffsetInner) wMidHeight
spiro-outline spiro-outline
corner (m2 + fineOffsetOuter) 0 corner (m2 + fineOffsetOuter) 0
corner (m2 - fineOffsetInner) 0 corner (m2 - fineOffsetInner) 0
@ -844,52 +849,50 @@ export : define [apply] : begin
dispiro dispiro
widths.lhs fineInner widths.lhs fineInner
flat (middle - fineOffsetInner) wheight flat (df.middle - fineOffsetInner) wMidHeight
#quadcontrols 0 0.1 6 unimportant
curl (m1 + fineOffsetInner) 0 [widths.rhs fineInner] curl (m1 + fineOffsetInner) 0 [widths.rhs fineInner]
dispiro dispiro
widths.rhs fineInner widths.rhs fineInner
flat (middle + fineOffsetInner) wheight flat (df.middle + fineOffsetInner) wMidHeight
#quadcontrols 0 0.1 6 unimportant
curl (m2 - fineOffsetInner) 0 [widths.lhs fineInner] curl (m2 - fineOffsetInner) 0 [widths.lhs fineInner]
define [InnerStrokeMask] : union define [InnerStrokeMask] : union
spiro-outline spiro-outline
corner 0 0 corner 0 0
corner (WIDTH * div) 0 corner df.width 0
corner (WIDTH * div) (-WIDTH * div) corner df.width (-df.width)
corner 0 (-WIDTH * div) corner 0 (-df.width)
spiro-outline spiro-outline
corner 0 wheight corner 0 wMidHeight
corner (WIDTH * div) wheight corner df.width wMidHeight
corner (WIDTH * div) (wheight + WIDTH * div) corner df.width (wMidHeight + df.width)
corner 0 (wheight + WIDTH * div) corner 0 (wMidHeight + df.width)
include : difference [InnerShapes] [InnerStrokeMask] include : difference [InnerShapes] [InnerStrokeMask]
if barStraight : begin if barStraight : begin
include : dispiro include : dispiro
widths.rhs widths.rhs
flat (rightSB - O * 2) top [heading DOWNWARD] flat (right - O * 2) top [heading DOWNWARD]
g4 (m2 + fineOffsetOuter) 0 [widths.rhs fineOuter] g4 (m2 + fineOffsetOuter) 0 [widths.rhs fineOuter]
: else : begin : else : begin
include : dispiro include : dispiro
widths.rhs widths.rhs
flat rightSB top [heading DOWNWARD] flat right top [heading DOWNWARD]
curl rightSB (top * 0.75) [heading DOWNWARD] curl right (top * 0.75) [heading DOWNWARD]
quadcontrols 0 0.3 6 unimportant quadcontrols 0 0.3 6 unimportant
g4 (m2 + fineOffsetOuter) 0 [widths.rhs fineOuter] g4 (m2 + fineOffsetOuter) 0 [widths.rhs fineOuter]
include : AIVSerifs top SB rightSB include : AIVSerifs top left right
set WShape.fineOuter 5 set WShape.fineOuter 5
set WShape.fineInner 6 set WShape.fineInner 6
set WShape.fineS 5.75 set WShape.fineS 5.5
set WShape.fineOffset 1.5 set WShape.hwCO 5
set WShape.fineOffsetS 1.25 set WShape.hwCOS 4
set WShape.m1 0.325 set WShape.m1 0.25
set WShape.m2 0.675 set WShape.m2 0.75
set WShape.m1S 0.30 set WShape.m1S 0.24
set WShape.m2S 0.70 set WShape.m2S 0.76
sketch # W sketch # W
set-width (WIDTH * para.diversityM) set-width (WIDTH * para.diversityM)