Added six and nine

This commit is contained in:
Belleve Invis 2015-07-21 20:58:54 +08:00
parent d966cf459b
commit d5a872944e
3 changed files with 2237 additions and 2093 deletions

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,9 @@
### COMMON FUNCTIONS
define [mix a b p] : a + [b - a] * p
define [xgrid p] : mix SB RIGHTSB p
### COMMON SHAPES
define [Ring u d l r] : begin {
@ -73,18 +78,20 @@ define [sStrand leftlimit rightlimit _expansion _roundp] : begin {
local roundsize : [SMOOTHA * [_roundp || 0.4]] * [if [leftlimit < rightlimit] [-1] 1]
local roundleft [leftlimit - roundsize]
local roundright [rightlimit + roundsize]
local sxleft [SB + HALFSTROKE + [RIGHTSB - SB - STROKE] * [0.5 - expansion]]
local sxright [WIDTH - sxleft]
local syleft [roundleft + [roundright - roundleft] * [0.5 - expansion]]
local syright [roundleft + [roundright - roundleft] * [0.5 + expansion]]
local xleft : SB + HALFSTROKE * xItalicCorrection
local xright : RIGHTSB - HALFSTROKE * xItalicCorrection
local sxleft : mix xleft xright [0.5 - expansion]
local sxright : mix xleft xright [0.5 + expansion]
local syleft : mix roundleft roundright [0.5 - expansion]
local syright : mix roundleft roundright [0.5 + expansion]
return : new Stroke
:.set-transform globalTransform
:.start-from [SB + HALFSTROKE * xItalicCorrection] [leftlimit - HALFSTROKE * yItalicCorrection]
:.start-from xleft [leftlimit - HALFSTROKE * yItalicCorrection]
:.set-width HALFSTROKE HALFSTROKE
:.curve-to [SB + HALFSTROKE * xItalicCorrection] roundleft sxleft syleft
:.curve-to xleft roundleft sxleft syleft
:.line-to sxright syright
:.curve-to [RIGHTSB - HALFSTROKE * xItalicCorrection] roundright [RIGHTSB - HALFSTROKE * xItalicCorrection] [rightlimit + HALFSTROKE * yItalicCorrection]
:.curve-to xright roundright xright [rightlimit + HALFSTROKE * yItalicCorrection]
:.to-outline
}
@ -110,33 +117,72 @@ define [nBowl left middle right fine] : begin {
return : bandLeft.concat bandRight
}
define [sHookUpper top smooth hook] : begin {
define [sHookUpper top smooth hook _middle] : begin {
local middle : _middle || MIDDLE
return : new Stroke
:.set-transform globalTransform
:.start-from [RIGHTSB - OXHOOK] [top - hook]
:.set-width STROKE 0
:.curve-to [MIDDLE + KAPPA_HOOK * [MIDDLE - para.sb]] [top - O] MIDDLE [top - O]
:.curve-to [mix middle RIGHTSB KAPPA_HOOK] [top - O] middle [top - O]
:.heads-to LEFTWARD
:.arc-hv-to SB [top - smooth]
:.to-outline
}
define [twoHookUpper top smooth hook] : begin {
define [twoHookUpper top smooth hook _middle] : begin {
local middle : _middle || MIDDLE
return : new Stroke
:.set-transform globalTransform
:.start-from [SB + OXHOOK] [top - hook]
:.set-width 0 STROKE
:.curve-to [MIDDLE - KAPPA_HOOK * [MIDDLE - para.sb]] [top - O] MIDDLE [top - O]
:.curve-to [mix middle SB KAPPA_HOOK] [top - O] middle [top - O]
:.heads-to RIGHTWARD
:.arc-hv-to RIGHTSB [top - smooth]
:.to-outline
}
define [sHookLower bottom smooth hook] : begin {
define [sHookLower bottom smooth hook _middle] : begin {
local middle : _middle || MIDDLE
return : new Stroke
:.set-transform globalTransform
:.start-from RIGHTSB smooth
:.set-width 0 STROKE
:.arc-vh-to MIDDLE [bottom + O]
:.arc-vh-to middle [bottom + O]
:.heads-to LEFTWARD
:.curve-to [MIDDLE - KAPPA_HOOK * [MIDDLE - para.sb]] [bottom + O] [SB + OXHOOK] [bottom + hook]
:.curve-to [mix middle SB KAPPA_HOOK] [bottom + O] [SB + OXHOOK] [bottom + hook]
:.to-outline
}
define [smallo u d l r] : begin {
local middle : [l + r] / 2
if [u - d > SMALLSMOOTHA + SMALLSMOOTHB] {
then : return : new Stroke
:.set-transform globalTransform
:.start-from middle [u - O]
:.set-width STROKE 0
:.heads-to LEFTWARD
:.arc-hv-to [l + O] [u - SMALLSMOOTHA]
:.line-to [l + O] [d + SMALLSMOOTHB]
:.arc-vh-to middle [d + O]
:.heads-to RIGHTWARD
:.arc-hv-to [r - O] [d + SMALLSMOOTHA]
:.line-to [r - O] [u - SMALLSMOOTHB]
:.arc-vh-to middle [u - O]
:.heads-to LEFTWARD
:.to-outline
else : begin {
local ymiddlea : [u - SMALLSMOOTHA + d + SMALLSMOOTHB] / 2
local ymiddleb : [u - SMALLSMOOTHB + d + SMALLSMOOTHA] / 2
return : new Stroke
:.set-transform globalTransform
:.start-from middle [u - O]
:.set-width STROKE 0
:.heads-to LEFTWARD
:.arc-hv-to [l + O] ymiddlea
:.arc-vh-to middle [d + O]
:.heads-to RIGHTWARD
:.arc-hv-to [r - O] ymiddleb
:.arc-vh-to middle [u - O]
:.heads-to LEFTWARD
:.to-outline
}
}
}

View file

@ -143,4 +143,31 @@ create-glyph 'five' : glyph-construction {
:.line-to [SB + TBALANCE / 2] CAP
:.heads-to UPWARD
:.to-outline
}
create-glyph 'six' : glyph-construction {
set-width WIDTH
assign-unicode '6'
put-shapes : smallo [CAP * 0.6] 0 SB RIGHTSB
local ymiddlea : [CAP * 0.6 - SMALLSMOOTHA + SMALLSMOOTHB] / 2
put-shapes : create-stroke
:.start-from [SB + O] ymiddlea
:.set-width 0 STROKE
:.curve-to [SB + O] [mix ymiddlea CAP 0.8] [RIGHTSB - STROKE * 1.1] CAP
:.to-outline
}
create-glyph 'nine' : glyph-construction {
set-width WIDTH
assign-unicode '9'
put-shapes : smallo CAP [CAP * 0.4] SB [RIGHTSB + O]
local ymiddlea : [CAP - SMALLSMOOTHB + CAP * 0.4 + SMALLSMOOTHA] / 2
put-shapes : create-stroke
:.start-from RIGHTSB ymiddlea
:.set-width 0 STROKE
:.line-to RIGHTSB [CAP * 0.4]
:.to-outline
put-shapes : sHookLower 0 [CAP * 0.4] HOOK [xgrid 0.48]
}